为什么不能以这种方式更改表单的背景色?
MainForm.BackColor = System.Drawing.Color.Black;
这是我在控制台中得到的:
An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.BackColor.get' (CS0120)
参考方案
Static Classes是无法实例化的类。静态类具有静态方法或静态属性(或两者)。当使用这样的行时:
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>
希望这更有意义!
将谓词<T>转换为Func <T,bool> - c#我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…
通过Maven编译器插件不会发生有限的包含和排除 - java我正在使用3.6.0版的maven编译器插件,在此我们只想在特定文件夹中编译一个文件,而在该位置编译所有其他文件。例如:在文件夹应用程序中有14个文件,从那我只希望编译1个文件,但它编译了所有文件,如果我要排除,则它也不起作用。 <sourceDirectory>${basedir}/../src/java</sourceDirectory…
当我所有的都是T时,如何返回Interface <T>的实例? - java我有一个界面:public interface ILoginResult<T> { public T get(); } 我有一个LoginPage对象:public class LoginPage<T> { ... public ILoginResult<T> login(...) { ... } } 我也有一些登录页面对…
客户端反序列化为数组序列化字典<string,string>数据 - c#我有一个字典,该字典使用C#中的JavaScriptSerializer进行了序列化。在客户端,我有:"{"dd049eda-e289-4ca2-8841-4908f94d5b65":"2","ab969ac2-320e-42e1-b759-038eb7f57178":"5…
Java中的“ <<”运算符 - java最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…