c# - 类本身内部的类实例

标签 c# oop instance

此代码有效:

class Person{
    public Person p;
    public string name;
    private int age;

}
class Solution {


    static void Main(String[] args) {

        Person z = new Person () { name = "Stacl"};
        Console.WriteLine (z.name);
        Person a = new Person ();
        Console.WriteLine (a.name);

    }
}

但这行不通:

class Person{
    public Person p = new Person (){name = "Inside",age = 45}; // add 'new'
    public string name;
    private int age;

}
class Solution {


    static void Main(String[] args) {

        Person z = new Person () { name = "Stacl"};
        Console.WriteLine (z.name);
        Person a = new Person ();
        Console.WriteLine (a.name);

    }
}

你能给我解释一下这是怎么发生的以及为什么会发生吗?

最佳答案

正如@Lucas 在评论中提到的,这会导致创建Person 的无限循环。

如果不初始化p 字段,就不能构造Person,它构造一个Person,它构造一个Person等...

当然,这最终会导致 StackOverflowException

关于c# - 类本身内部的类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27837924/

相关文章:

java - 在类本身中初始化泛型类型字段

java - 如何克隆 java keystore 实例?

c# - Base64 是否标准化?

oop - Go 中的构造函数

c# - 来自计时器触发器的 Azure 函数输出服务总线绑定(bind)

java - 将方法与返回的 jcomponents 和泛型一起使用

c++ - 为什么在没有返回类型的情况下显式调用构造函数时会返回一个临时对象?

c++ - 对象与实例的区别 : C++

c# - WPF DataGrid SelectionChanged 事件取消单元格焦点问题

c# - 在运行时创建类和项目的属性