111,120
社区成员
发帖
与我相关
我的任务
分享
using System;
namespace StaticInitTest{
public class MyClass{
public static void Main()
{
new UserA().ShowDateTime();
System.Threading.Thread.Sleep(123);
new UserB().ShowDateTime();
System.Threading.Thread.Sleep(123);
new UserC().ShowDateTime();
}
}
public class UserA{
//1.直接用静态成员
private static UserUtility MyUtility =new UserUtility();
public void ShowDateTime(){
Console.WriteLine(MyUtility.GetNowDateTime());
}
}//UserA
public class UserB{
//2.用静态构造函数
static UserB(){
MyUtility=new UserUtility();
}
private static UserUtility MyUtility;
public void ShowDateTime(){
Console.WriteLine(MyUtility.GetNowDateTime());
}
}//UserB
public class UserC{
//3.用属性+静态成员
protected UserUtility MyUtility{
get{
if(_myutility==null)
_myutility=new UserUtility();
return _myutility;
}
}
private static UserUtility _myutility;
public void ShowDateTime(){
Console.WriteLine(MyUtility.GetNowDateTime());
}
}//UserC
public class UserUtility{
public string GetNowDateTime(){
DateTime dt = DateTime.Now;
return string.Format("现在时间是{0} {1}:{2}",
dt.ToShortDateString(),
dt.ToLongTimeString(),
dt.Millisecond.ToString("000")
);
}
}//UserUtility
}