非静态类的方法是不能直接调用的,需要实例化,但当有时需在各个地方去调用该方法时,逐个去实例化会显得麻烦,可以采用一个静态类来封装后使用。
用开关灯来举个例子:
假设灯是一个非静态类,可开关,有状态
class Light
{
public string Status = "Open";
public void OpenLight()
{
//Turn on the light
}
public void CloseLight()
{
//Turn off the light
}
}
然后我们封装一个静态类去实现功能和获取状态
public class LightHelper
{
private Light m_Light = new Light();
private static readonly LightHelper m_LightHelper = new LightHelper();
public static LightHelper Action()
{
return m_LightHelper;
}
public void OpenLight()
{
m_Light.OpenLight();
}
public void CloseLight()
{
m_Light.CloseLight();
}
public string GetLightStatus()
{
return m_Light.Status;
}
}
然后在别的地方就可以用以下代码来调用了
LightHelper.Action().OpenLight();
LightHelper.Action().CloseLight();
string LightStatus = LightHelper.Action().GetLightStatus();