我正在尝试通过Status
监视连接状态,该状态会自动更改表单上标签的文本。
这是我的主班课
private int _status;
public int Status
{
get { return _status; }
set
{
_status = value;
if (_status == (int)ServerStatus.Disconnected)
{
statusLabel.Text = "Disconnected";
statusLabel.ForeColor = Color.Red;
}
else
{
statusLabel.Text = "Connected";
statusLabel.ForeColor = Color.Green;
}
}
}
我现在的问题是如何在不实例化主类的情况下从另一个类更改Status
。
还是我的工作有更好的方法?
答案 0 :(得分:0)
没有对该实例的引用,您将无法访问该实例属性。
要能够修改类类型的对象的属性,您需要通过引用其实例来访问该活动对象。
除非此属性是静态的,否则该类被实现为单例。
静态属性
public class MyClass
{
static private int _status;
static public int Status
{
}
}
MyClass.Status = 1;
在这种情况下,MyClass的所有实例都共享一个相同的_status值,这对于所有实例都是通用的,因此整个应用程序中只有一个_status。
MyClass可能是静态的,也可能不是静态的。
单人
public class MySingleton
{
public readonly MySingleton = new MySingleton();
private MySingleton()
{
}
private int _status;
public int Status
{
}
}
MySingleton.Instance.Status = 1;
在这种情况下,只允许该类的一个实例,因此整个应用程序中只有一个_status。