Kas*_*hif 1 c# stack-overflow get set
所以我试图对此很聪明,但看起来这个想法是非常愚蠢的,因为我正在获得一个堆栈溢出异常.
理想情况下,CheckInternetStatus每当我使用IsConnected旗帜时,我都希望能够运行.
我怎样才能正确完成这个?或者这根本不是一个好主意?
public static class Internet
{
public static bool IsConnected
{
get
{
CheckInternetStatus();
return IsConnected;
}
set
{
IsConnected = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
附加信息:CheckInternetStatus更新IsConnected
您的代码有两个问题:
1)没有后备变量,你递归调用属性IsConnected:
private bool _isConnected;
public static bool IsConnected
{
get
{
_isConnected = CheckInternetStatus();
return _isConnected;
}
set
{
_isConnected = value;
}
}
Run Code Online (Sandbox Code Playgroud)
2)你不应该在房产中做很多工作.请改用方法.这更好地传达了阅读代码的人的意图
实际上有3件事:
3)如果你坚持使用属性(我不会),那么setter应该是private.如果未实际连接,则不希望设置连接.