C# C中.NET远程处理中实例的使用#

C# C中.NET远程处理中实例的使用#,c#,.net,C#,.net,关于C#中实例的使用,我有一个问题。 请您解释一下以下两行代码之间的区别: public static DatabaseClass Instance { get; } = new DatabaseClass(); DatabaseClass _database = DatabaseClass.Instance; 最大的区别是这是一个声明 public static DatabaseClass Instance { get; } = new DatabaseClass(); 这就是用法 Da

关于C#中实例的使用,我有一个问题。 请您解释一下以下两行代码之间的区别:

public static DatabaseClass Instance { get; } = new DatabaseClass();

DatabaseClass _database = DatabaseClass.Instance;

最大的区别是这是一个声明

public static DatabaseClass Instance { get; } = new DatabaseClass();
这就是用法

DatabaseClass _database = DatabaseClass.Instance;
你断章取义地写了两行代码。真正的上下文是包含这些行的类。一个类最有可能是一个
Singleton

public class DatabaseClass 
{
    private DatabaseClass() {} // hide constructor

    public static DatabaseClass Instance { get; } = new DatabaseClass();
}
另一个类有一些方法调用上面的类

public class SomeClass
{
    public static void DoSomething()
    {
        DatabaseClass _database = DatabaseClass.Instance;
        _database.PerformSomeOperation()
    }
}
只要看一下声明,这是处理单身人士的一种常见方式

对于你的问题,底线是

行#1是具有默认只读值的静态属性声明


第2行是该属性的用法

第一行是公共属性,不能从类外更改。第二个字段是一个私有字段(默认情况下),它引用了您的问题中未包含的代码,
DatabaseClass.Instance
。?查看这两行,似乎
DatabaseClass
是一个单例查看单例模式及其延迟实现@阿米尔,别把她弄糊涂了。单例可以用许多不同的方式实现,而且根据定义,所有单例都是懒惰的。在第一次调用之前,没有初始化。在singleton中不需要真正使用
Lazy
。第一个实现不是Lazy,亲爱的;-)。再次访问链接。谢谢你的留言。