
C#自己写了一个类,但是在实例化对象时出现StackOverflowException错误
我用C#编程,自己写了一个类,内容如下:classMyClass1{publicstringName{get{returnName;}}}然后在使用的时候:MyClass...
我用C#编程,自己写了一个类,内容如下:
class MyClass1
{
public string Name
{
get
{
return Name;
}
}
}
然后在使用的时候:
MyClass1 ABCD = new MyClass1();
然后(lable1是一个标签控件)
lable1.Text = ABCD.Name;
调试的时候就报错,说“未处理的“System.StackOverflowException”类型的异常出现在 SSOSimulator.exe 中。”
出错的位置在get关键字这里,查看ABCD的状态提示:
“{当前线程处于堆栈溢出状态,因此无法计算表达式的值。}”
有谁知道如何解决?
环境是:VS2008+windows XP
有能解决的我再追加奖励
如图,我重现了一下这个错误,无论怎么都会出错,我这个属性是只读的,因此不需要SET,现在我就算加上SET也一样。另外我需要从外部读取这个属性,不能设为私有的。
Dedicatus545__说:你在属性里返回属性自身,那肯定造成无限循环了 然后堆栈溢出...
那GET部分应该怎么写呢?不好意思,好久没写了,忘记了,只是在MSDN上看了下例子。 展开
class MyClass1
{
public string Name
{
get
{
return Name;
}
}
}
然后在使用的时候:
MyClass1 ABCD = new MyClass1();
然后(lable1是一个标签控件)
lable1.Text = ABCD.Name;
调试的时候就报错,说“未处理的“System.StackOverflowException”类型的异常出现在 SSOSimulator.exe 中。”
出错的位置在get关键字这里,查看ABCD的状态提示:
“{当前线程处于堆栈溢出状态,因此无法计算表达式的值。}”
有谁知道如何解决?
环境是:VS2008+windows XP
有能解决的我再追加奖励
如图,我重现了一下这个错误,无论怎么都会出错,我这个属性是只读的,因此不需要SET,现在我就算加上SET也一样。另外我需要从外部读取这个属性,不能设为私有的。
Dedicatus545__说:你在属性里返回属性自身,那肯定造成无限循环了 然后堆栈溢出...
那GET部分应该怎么写呢?不好意思,好久没写了,忘记了,只是在MSDN上看了下例子。 展开
展开全部
你在属性里返回属性自身,那肯定造成无限循环了 然后堆栈溢出...
private string name;
public string Name
{
get { return name; }
}
private string name;
public string Name
{
get { return name; }
}
展开全部
你是不是没有私有化Name啊。
private string Name="N/A";
你试试可以吗,还有你写没写set方法。
private string Name="N/A";
你试试可以吗,还有你写没写set方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要先定义属性(字段):private string Name="***";
然后在封装属性(字段):
public string Name
{
get { return name; }
}
因为你是封装属性(字段)!所以你要先定义属性(字段)
然后在封装属性(字段):
public string Name
{
get { return name; }
}
因为你是封装属性(字段)!所以你要先定义属性(字段)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你只用咯啊get {},没有用set {}返回name的值哟!
你阿奎那用一下看行不?
你阿奎那用一下看行不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询