Извините за общий заголовок, я действительно не понимаю ошибку, которую я получаю.
Итак, я следую этому руководству по C# и готов раздел «Структуры и управление памятью».
Примерно в 5:30 он начинает создавать Color
Struct, поэтому я следую ему, строка за строкой. Все это время его код не показывает ошибок.
Мои ошибки
Однако у меня есть. Четыре из них, если быть точным:
1) Error 1: Backing field for automatically implemented property 'Color.R' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.
Ошибки 2 и 3 такие же, как и 1, за исключением замены Color.R
на Color.G
и Color.B
.
Наконец, ошибка 4:
The 'this' object cannot be used before all of its fields are assigned to.
Код
Вот мой код для моей структуры Color (опять же, я изо всех сил пытаюсь заметить разницу между моим кодом и кодом мастера учебника):
public struct Color
{
public byte R { get; private set; }
public byte G { get; private set; }
public byte B { get; private set; }
public Color(byte red, byte green, byte blue)
{
R = red;
G = green;
B = blue;
}
public static Color Red
{
get { return new Color(255, 0, 0); }
}
public static Color Green
{
get { return new Color(0, 255, 0); }
}
public static Color Blue
{
get { return new Color(0, 0, 255); }
}
public static Color Black
{
get { return new Color(0, 0, 0); }
}
public static Color White
{
get { return new Color(255, 255, 255); }
}
}
Я совершенно новичок в С#, но имею некоторый опыт работы с PHP, поэтому я немного смущен тем, что именно здесь происходит. Мысли?