是否在类型之间共享generics类的静态成员
我正在尝试创建一个generics类,它将根据类型具有一些静态函数。 每种类型都有静态成员吗? 或者只有在使用通用的地方? 我问的原因是我想要每种类型的锁对象,而不是它们之间共享的对象。
所以,如果我有
class MyClass where T:class { static object LockObj = new object(); static List ObjList = new List(); }
我理解ObjList肯定会为每个使用的generics类型创建一个不同的对象,但LockObj在每个generics实例化( MyClass
和MyClass
)之间是不同的还是相同的?
请自己检查一下!
public class Static { public static int Number { get; set; } } static void Main(string[] args) { Static.Number = 1; Static.Number = 2; Console.WriteLine(Static.Number + "," + Static.Number); } // Prints 1, 2
对于每个T,它将是不同的。基本上,对于所有不同的T,您将具有不同的类型,并且不在不同类型之间共享成员。
C#中的实例化generics类型在运行时实际上是不同的类型,因此不会共享静态成员。
上述就是C#学习教程:是否在类型之间共享generics类的静态成员分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/954008.html