【发布时间】:2016-04-22 08:29:49
【问题描述】:
不是 Java 的粉丝,但 Java 不允许为泛型类设置类型,在这种情况下,它会将类型威胁为 Object 类型。但是,据我所知,C# 强制设置 <T> 的类型,只要泛型类必须被实例化或简单地说使用。但是,假设我们有一个泛型类,我们需要一个不依赖于<T> 类型的静态方法。
首先,我们知道它可以移动到一个单独的上下文中,或者我们可以设置一个虚拟类型<T>,但是作为一个编程难题有没有办法调用它不定义@987654325的类型@?
例子:
class Test<T> where T: ITestable {
...
public static void CreateTestFile(String fileName) {...}
}
Test.CreateTestFile("test.txt");
这可以在 Java 中完成,但显然不能在 C# 中完成。但我只是想确定一下。
【问题讨论】:
-
否,类型必须在调用或编译时填充,不能保持打开为
T。您应该考虑将静态方法从这个泛型类中分离出来。 -
只是出于好奇。正如我所说,我只是想确保 C# 不允许这样做。
-
只要把方法放在非泛型类中就行了……如果和
T无关,就没有理由放在Test<T>中。