静态类和放大器之间的主要区别是什么?单身人士班

时间:2014-05-09 14:09:18

标签: c# singleton static-classes

这里有两个类代码,一个用于Singleton,另一个用于静态类。我喜欢在编程时理解何时应该使用静态类,何时应该使用Singleton类?

两者都用于保存全局对象,因此我们可以在程序运行时从程序的任何位置访问这些数据。适用范围广泛......应用的生命周期。

1)我真的没有找到任何可以指导我的文章,当我应该使用静态类时,Singleton类应该是不错的选择。我见过人们使用Singleton类来管理数据库连接。

2)Singleton class& amp;的主要区别是什么?静态类?

public sealed class Singleton
{
    private static Singleton instance = null;
    private static readonly object padlock = new object();

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            lock (padlock)
            {
                if (instance == null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
    }
} 

public static class TestStatic //: ITestSingleton
    {
        public static void doAction(string args)
        {
            Console.WriteLine("Test Static :: " + args);
        }
    } 

2 个答案:

答案 0 :(得分:0)

使用 static 修饰符声明一个静态成员,该成员属于该类型本身而不是特定对象。 static修饰符可以与类,字段,方法,属性,运算符,事件和构造函数一起使用,但不能与索引器,析构函数或类以外的类型一起使用。

当您需要只有一个实例的类时,请使用 singleton ,并且需要提供对该实例的全局访问点

答案 1 :(得分:0)

单例基本上是单个类实例的入口点。该类的实例可以作为引用传递给另一个方法。

静态类没有这种行为(只允许使用静态方法)。