我正在编写一个代码,用于在C#中设置属性并获得异常.
public class person
{
public string name
{
set
{
name = value;
}
get
{
return name;
}
}
public static void Main()
{
person p = new person();
p.name = "Bilal";
Console.WriteLine(p.name);
}
}
Run Code Online (Sandbox Code Playgroud)
Bro*_*ass 14
你的属性中有无限递归 - 你的setter会调用自己直到你得到一个堆栈溢出:
set
{
name = value;
}
Run Code Online (Sandbox Code Playgroud)
而是使用自动属性(如果您不需要直接访问支持字段并且不在getter/setter中执行任何其他操作,则建议使用):
public string name {get;set;}
Run Code Online (Sandbox Code Playgroud)
或使用支持字段:
private string _name;
public string name
{
set
{
_name = value;
}
get
{
return _name;
}
}
Run Code Online (Sandbox Code Playgroud)
您的媒体资源名称和字段名称相同("名称").将属性名称大写.
或者只是切换到自动道具:
public class Person
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)