一个关于类初始化的问题
定义了 BaseUser m_user { get; set; } (BaseUser 是个实体类 )
抽象类 public abstract class BaseMachine:IMainMachine 中
public BaseMachine()
{
m_user = new BaseUser();
m_user.Name = ConfigUtil.GetTypeValue("UserName");
m_user.PassWord = ConfigUtil.GetTypeValue("PassWord"); }
public BaseUser m_user
{
get
{
return m_user;
}
set
{
m_user = value;
}
}
现在问题是在set上报错:未处理的“System.StackOverflowException”类型的异常出现
如果将 BaseMachine中的内容注释掉就不会报错
大家帮帮看看这是什么问题
我只是想在抽象类中初始化一些数据
相关推荐
C++类的静态成员初始化详细讲解
通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化
类继承的初始化顺序类,继承的初始化顺序
类继承的初始化顺序类继承的初始化顺序类继承的初始化顺序类继承的初始化顺序
JAVA面试题解惑系列——类的初始化顺序
JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看
Java类初始化顺序
所有构造方法执行顺序如下: 执行父类的构造方法。没有继承默认继承的Object。Object会开辟一块内存,初始化所有数据为0、null、false等默认值 执行本类中的成员代码块。所有代码块是从上往下顺序执行的,所以代码块里面使用到的变量如果在块下面初始化会有问题 执行构造方法中内容。 所以看见的空构造方法,只能说第三部没有需要执行的内容。 下面举例子 public class TestClass { // 单独一行的初始化算一个代码块,这个是初始化a的代码块 private String a = "hello"; // 这个只是声明变量,并b不算代码块
关于C++类的成员初始化列表的相关问题
在以下四中情况下,要想让程序顺利编译,必须使用成员初始化列表(member initialization list): 1,初始化一个引用成员(reference member); 2,初始化一个常量对象(const member); 3,调用一个基类的构造函数,且该基类的构造函数有一组参数; 4,调用一个成员类(member class)的构造函数,且该构造函数有一组参数 这四种情况程序可以正常编译,但是效率有所欠缺(下面会具体说到)。 class Word{ String _name; int _cnt; public: Word() { _name = 0; _cnt = 0; }


