静态类和单例模式之间存在什么真实(即实际)差异?
两者都可以在没有实例化的情况下调用,两者都只提供一个"实例",它们都不是线程安全的.还有其他区别吗?
在以下程序中:
class Main
{
static string staticVariable = "Static Variable";
string instanceVariable = "Instance Variable";
public Main(){}
}
Run Code Online (Sandbox Code Playgroud)
在instanceVariable将存储分配给对象实例的记忆里.staticVariable存储在哪里,是存储在对象实例本身还是其他地方?如果它存储在其他地方,内存位置如何连接?
我最近和一位同事讨论了嘲笑问题.他说,嘲弄课程非常糟糕,不应该在少数情况下完成.
他说只有界面应该被嘲笑,否则就是架构错误.
我想知道为什么这句话(我完全信任他)是如此正确?我不知道,并且想要被说服.
我是否想念嘲笑(是的,我读过Martin Fowler的文章)
刚尝试创建ArrayList并用对象填充它,但是遇到了这个错误:
无法创建静态类'diamondmine.MyObject'的实例
到目前为止的代码:
public static class MySettings
{
//some lines
public static ArrayList myObjects { get; set; }
static MySettings()
{
//some lines
myObjects = new ArrayList();
}
}
public static class MyObject
{
public static int a { get; set; }
public static int b { get; set; }
static MyObject()
{
a = 1;
b = 2;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我尝试添加新对象的方式:
//some code
MySettings.myObjecs.Add(new MyObject());
//more code
Run Code Online (Sandbox Code Playgroud)
Rly没有线索问题在哪里,我正在做MSDN中写的东西:(