struct A()
{
private()
{
this = new A();
}
}
class A()
{
private()
{
this = new A();//编译报错
}
}
对于值类型,因为它就是栈上的数据,所以给这个指针赋值也就是把数据复制到栈的这个位置,因为位置并没动,上层调用也不会出问题.
对于引用类型,外面持有这个类的指针,里面根本不知道谁持有我,也没法改持有我的人对我的指针.
struct A()
{
private()
{
this = new A();
}
}
class A()
{
private()
{
this = new A();//编译报错
}
}
对于值类型,因为它就是栈上的数据,所以给这个指针赋值也就是把数据复制到栈的这个位置,因为位置并没动,上层调用也不会出问题.
对于引用类型,外面持有这个类的指针,里面根本不知道谁持有我,也没法改持有我的人对我的指针.
转载于:https://www.cnblogs.com/lxis/archive/2011/11/24/2262060.html