很简单关于 C# 的属性的有关问题, 高手来看看
很简单关于 C# 的属性的问题, 高手来看看
namespace CSCnsl
{
public class Property
{
}
public class User
{
public Property P
{
get { return P; }
set { P = value; }
}
}
class Program
{
static void Main(string[] args)
{
User user = new User ();
//只要一给user的p属性赋值就抛下面异常,我不知道怎么改,才能不抛异常
user.P =null; //这里总是 StactOverFlow 但我不知道为什么,请修改下代码,让他能正常运行
}
}
}
------解决方案--------------------
------解决方案--------------------
你之前的代码,属性在得到赋值的指令后不停的给自己赋值。。
自然就死循环了。
------解决方案--------------------
你没发现那个P的get方法里面,返回了自己,自己再调用自己的get方法,无限自我调用,没有停止的时候了。
------解决方案--------------------
public Property P
{
get;
set;
}
这样就可以了
namespace CSCnsl
{
public class Property
{
}
public class User
{
public Property P
{
get { return P; }
set { P = value; }
}
}
class Program
{
static void Main(string[] args)
{
User user = new User ();
//只要一给user的p属性赋值就抛下面异常,我不知道怎么改,才能不抛异常
user.P =null; //这里总是 StactOverFlow 但我不知道为什么,请修改下代码,让他能正常运行
}
}
}
------解决方案--------------------
public class User
{
private Property _P
public Property P
{
get { return _P; }
set { _P = value; }
}
}
------解决方案--------------------
你之前的代码,属性在得到赋值的指令后不停的给自己赋值。。
自然就死循环了。
------解决方案--------------------
你没发现那个P的get方法里面,返回了自己,自己再调用自己的get方法,无限自我调用,没有停止的时候了。
------解决方案--------------------
public Property P
{
get;
set;
}
这样就可以了