我正在使用带有类型的通用静态类的 C# Web 服务。我想知道为什么这不能编译:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<type1>._pool.Count);
它给出了这个错误:
找不到类型或命名空间名称“type1”(您是否缺少 using 指令或程序集引用?)
当我将鼠标悬停type1
在第二行代码中时,ReSharper 会显示“需要类型或命名空间名称”。嗯,type1
是一种类型!这是一个类型的变量Type
!如果我这样做,它也不起作用:
Type type1 = typeof(MySnazzyType);
Assert.AreEqual(0, ConnectionPool_Accessor<typeof(type1)>._pool.Count);
我希望将我的类型分配给几个不同的Type
变量,并仅在测试不同的通用静态类时使用它们,而不是MySnazzyType
每次都输入。任何想法,或者我坚持做:
Assert.AreEqual(0, ConnectionPool_Accessor<MySnazzyType>._pool.Count);
编辑:澄清一下,MySnazzyType
不是泛型类,也不是从泛型类继承。这里唯一的通用类是ConnectionPool_Accessor
.
感谢 Pavel 的评论“本质上,您的问题是 C# 是一种静态类型语言”,我现在知道 Ruby 已经宠坏了我。;)