Статические классы - это классы, экземпляры которых невозможно создать. Статические классы имеют статические методы или статические свойства (или и то, и другое). Когда вы используете такую строку:
MainForm.BackColor = System.Drawing.Color.Black; // <class name>.<property>
Компилятор C # сначала ищет переменную локального класса с именем MainForm
. Поскольку его не было, он посмотрел за пределы вашей локальной области и нашел ваш Windows.Form
класс с именем MainForm
.
Затем он посмотрел, есть ли у класса MainForm
статическое свойство с именем BackColor
. Затем компилятор сказал: «О, смотрите, есть свойство с именем BackColor
, но оно не статическое», когда компилятор пожаловался и выдал вам ошибку, с которой вы столкнулись.
Изменив его на this.BackColor
, компилятор знал, что вы хотите установить цвет фона ЭТОГО ЭКЗАМЕНА MainForm, который был this
или, по умолчанию, form1
:
this.BackColor = System.Drawing.Color.Black; // <this instance>.<property>
И в качестве примечания, ключевое слово this
не требуется. Отсутствие этого предполагает «этот объект». Вы также можете сделать это:
BackColor = System.Drawing.Color.Black; // <this instance>.<property>
Надеюсь, в этом есть больше смысла!
person
Icemanind
schedule
24.04.2014
this.BackColor
или простоBackColor
- person Icemanind   schedule 24.04.2014