我的程序抛出此异常:
System.StackOverflowException
当编译器执行set属性时。
本wine
类:
class wine
{
public int year;
public string name;
public static int no = 5;
public wine(int x, string y)
{
year = x;
name = y;
no++;
}
public int price
{
get
{
return no * 5;
}
set
{
price = value;
}
}
}
本Program
类:
class Program
{
static void Main(string[] args)
{
wine w1 = new wine(1820, "Jack Daniels");
Console.WriteLine("price is " + w1.price);
w1.price = 90;
Console.WriteLine(w1.price);
Console.ReadLine();
}
}
设置price属性时,您将调用setter,后者将调用setter,后者又将调用setter,依此类推。
解决方案:
public int _price;
public int price
{
get
{
return no * 5;
}
set
{
_price = value;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句