c# – 试图了解静态在这种情况下是如何工作的
发布时间:2020-12-15 03:44:06 所属栏目:百科 来源:网络整理
导读:我正在看一些同事写的代码和我预期会发生的代码.这是代码: public class SingletonClass{ private static readonly SingletonClass _instance = new SingletonClass(); public static SingletonClass Instance { get { return _instance; } } private Singl
我正在看一些同事写的代码和我预期会发生的代码.这是代码:
public class SingletonClass { private static readonly SingletonClass _instance = new SingletonClass(); public static SingletonClass Instance { get { return _instance; } } private SingletonClass() { //non static properties are set here this.connectionString = "bla" this.created = System.DateTime.Now; } } 在另一堂课中,我希望能够做到: private SingletonClass sc = SingletonClass.Instance.Instance.Instance.Instance.Instance.Instance; 它引用该类的相同实例.发生的事情是我只能有一个.实例.我没想到的东西.如果Instance属性返回一个SingletonClass类,为什么我不能在返回的类上调用Instance属性,依此类推? 解决方法
因为您只能通过SingletonClass类型访问.Instance,而不能通过该类型的实例访问.Instance. 由于Instance是静态的,您必须通过以下类型访问它: SingletonInstance inst = SingletonInstance.Instance; // Access via type // This fails,because you're accessing it via an instance // inst.Instance 当你试图链接这些时,你实际上是这样做的: SingletonInstance temp = SingletonInstance.Instance; // Access via type // ***** BAD CODE BELOW **** // This fails at compile time,since you're trying to access via an instance SingletonInstance temp2 = temp.Instance; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |