我想知道初始化静态成员内联有什么区别:
class Foo
{
private static Bar bar_ = new Bar();
}
或者在静态构造函数中初始化它,如下所示:
class Foo
{
static Foo()
{
bar_ = new Bar();
}
private static Bar bar_;
}
发布于 2008-10-20 13:44:48
发布于 2008-10-20 13:43:18
在这种情况下,我不认为有任何实际的区别。如果您在初始化静态变量时需要一些逻辑-例如,如果您希望在给定不同条件的情况下使用不同的具体接口类型-则可以使用静态构造函数。除此之外,内联初始化在我的书中是很好的。
class Foo
{
private static IBar _bar;
static Foo()
{
if(something)
{
_bar = new BarA();
}
else
{
_bar = new BarB();
}
}
}
https://stackoverflow.com/questions/218461
复制相似问题