Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类的属性引用对象类型是同一类_C#_.net_Class_Types_Attributes - Fatal编程技术网

C# 类的属性引用对象类型是同一类

C# 类的属性引用对象类型是同一类,c#,.net,class,types,attributes,C#,.net,Class,Types,Attributes,我想分析一个源代码,它为我提供了进化论。 在这段代码中,我有一个类,它的属性类型是同一类的同一类型 我不明白这种发展的作用是什么。编译器是正常的,但是代码中有无穷多个引用。没有 例如: 你能让我了解一下这个发展吗。这是单例模式的经典实现。通过这种方式,可以确保只为该类类型创建一个对象(例如,logger,配置类通常为单例) 您可能还遗漏了其他一些东西,比如该类型的实例构造函数必须是私有的,它自身所密封的类等等 所以你不能这么做 CachingServiceLocator obj = new C

我想分析一个源代码,它为我提供了进化论。 在这段代码中,我有一个类,它的属性类型是同一类的同一类型

我不明白这种发展的作用是什么。编译器是正常的,但是代码中有无穷多个引用。没有

例如:


你能让我了解一下这个发展吗。

这是单例模式的经典实现。通过这种方式,可以确保只为该类类型创建一个对象(例如,logger,配置类通常为单例)

您可能还遗漏了其他一些东西,比如该类型的实例构造函数必须是私有的,它自身所密封的类等等

所以你不能这么做

CachingServiceLocator  obj = new CachingServiceLocator() //not allowed

//to get the instance you have to do as following
CachingServiceLocator obj = CachingServiceLocator.me

不,它正在静态构造函数中创建一个新实例,只运行一次。我已经学习了singleton的设计模式,但他不是这样设计的(以前最复杂)。这个实现更基本。我知道这是它在这种情况下必须使用的静态构造函数规则。
CachingServiceLocator  obj = new CachingServiceLocator() //not allowed

//to get the instance you have to do as following
CachingServiceLocator obj = CachingServiceLocator.me