为什么不能为一个类的非静态数据成员变量分配另一个变量? 例如:
class A {
bool firstFlag=false;
bool secondFlag=firstFlag; // Showing Error.
void SomeMethod(){}
}
答案 0 :(得分:0)
答案很糟糕:-)
firstFlag和secondFlag都是Class DataMembers。根据定义,您只能在成员方法或构造函数中访问它们。
要做您需要的-尝试以下操作:
internal class A
{
bool firstFlag = false, secondFlag = false;
}
答案 1 :(得分:-2)
感谢对A field initializer cannot reference the nonstatic field, method, or property
的讨论请参考C#语言规范的10.5.5.2实例字段初始化状态-实例字段的变量初始化程序无法引用正在创建的实例。因此,在变量初始值设定项中引用“ this”是编译时错误。(因此,对于变量初始值设定项通过简单名称引用任何实例成员,这是编译时错误。)