我正在用C#开发一个Windows应用程序.在我的应用程序中,我使用了一个静态类.
以下是代码:
public static class clsNumber
{
private static object vValue;
public static object Value
{
get
{
return Value;
}
set
{
Value = value;
}
}
public static string HexValue
{
get
{
try
{
return Microsoft.VisualBasic.Conversion.Hex(vValue);
}
catch
{
return Convert.ToString(vValue);
}
}
set
{
Value = Microsoft.VisualBasic.Conversion.Val("&H" + value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
从另一个类中设置上述类的"HexValue"的值.下面是代码行:
iStick = sOutPut.Substring(0, 8);
clsNumber.HexValue = iStick;
Run Code Online (Sandbox Code Playgroud)
在执行上面的代码行时,会出现以下错误:
"An unhandled exception of type 'System.StackOverflowException' occurred in <.....>.dll"
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?提前致谢.
Dav*_*nan 10
这里有一个非终止递归:
public static object Value
{
get
{
return Value;
}
set
{
Value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
return Valuegetter中的行以递归方式调用getter,这会导致堆栈溢出.同样对于二传手.
我想你的意思是:
public static object Value
{
get
{
return vValue;
}
set
{
vValue = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我没有看到在这里使用明确命名的字段返回属性可以获得什么.我将删除vValue并声明属性如下:
public static object Value { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21778 次 |
| 最近记录: |