类我有一个类(现在)是静态的:静态/单接口实现在C#
public static class Grob
{
public static void Frob()
{
Foo.Bar();
}
}
而且行之有效。代码调用:
Grob.Frob();
和所有的东西都是对的。现在,我想我的类来实现接口:
public static class Grob : IOldNewGrob
{
public static void Frob()
{
Foo.Bar();
}
}
不幸的是不起作用的,因为reasons。
所以我会尝试改变上课到singleton:
public sealed class Grob
{
private static volatile Singleton instance;
private static object syncRoot = new Object();
private Grob() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
}
这工作得很好,但它不工作 - 代码不再编译:
Grob.Frob();
在其他语言它不会是一个问题。我想创建一个全局Grob
功能(称为Grob
,因为这是现有的代码所需要的名称):
function Grob(): GrobSingleton;
{
return Grob.Instance;
}
//and rename Grob class to something else
public sealed class GrobSinglton
{
...
}
除了C#没有全局的功能。
中底:
- 我不需要全局函数
- 我不需要静态类能够实现一个接口
- 我不t 需要一个单身人士
我只是想要一切工作。
为什么你就不能调用'Grob.Instance.Frob()'?这就是单身人士的工作方式。 – cdhowie
@cdhowie我可以打电话给'Grob。Instance.Frob()';但现有的代码没有。 –