Rid*_*ick 5 c# static static-members
我今天已经向我展示了一个例子,并且只想检查以下两者是否实际上具有相同的效果,而不是,它们之间的区别是什么.
这是:
private static Service1Client _myFoo;
static ServiceLayer()
{
MyFoo = new Service1Client();
}
public static Service1Client MyFoo
{
get { return _myFoo; }
set { _myFoo = value; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个冗长的方式:
public static Service1Client _myFoo
{
get { return _myFoo; }
set { _myFoo = value; }
}
static ServiceLayer()
{
_myFoo = new Service1Client();
}
Run Code Online (Sandbox Code Playgroud)
如果不是这样,那么它们之间有什么区别?
谢谢.
its*_*e86 10
您需要支持字段,因为:
public static Service1Client _myFoo
{
get { return _myFoo; }
}
Run Code Online (Sandbox Code Playgroud)
....就像你在你的例子中将永远循环.
但是,C#确实提供了自动属性.你可以用这个简单的代码完成同样的事情:
public static Service1Client MyFoo { get; set; }
static ServiceLayer()
{
MyFoo = new Service1Client();
}
Run Code Online (Sandbox Code Playgroud)