是通用类的静态成员类型之间共享 [英] Are static members of generic classes shared between types

查看:103
本文介绍了是通用类的静态成员类型之间共享的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图创建一个通用类,这将具有基于类型的一些静态功能。每种类型的有静态成员?或者,只有在有一个通用的使用呢?我想问的原因是我想要锁定的对象为每种类型的,而不是一个他们之间共享。

I'm trying to create a generic class which will have some static functions based on the type. Are there static members for each type? Or only where there is a generic used? The reason I ask is I want a lock object for each type, not one shared between them.

所以,如果我有

class MyClass<T> where T:class
{
    static object LockObj = new object();
    static List<T> ObjList = new List<T>();
}



据我了解,ObjList肯定有用于每个泛型类型创建一个不同的对象,但将在LockObj是每个泛型实例之间的不同( MyClass的< RefTypeA> MyClass的< RefTypeB> )或一样的吗?

推荐答案

只要检查一下吧!

public class Static<T>
{
    public static int Number { get; set; }
}

static void Main(string[] args)
{
    Static<int>.Number = 1;
    Static<double>.Number = 2;
    Console.WriteLine(Static<int>.Number + "," + Static<double>.Number);
}
// Prints 1, 2

这篇关于是通用类的静态成员类型之间共享的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆