【发布时间】:2020-01-09 04:55:36
【问题描述】:
我正在使用 C#,我的代码中有以下方法:
public void Test(System.Type type) {...}
但我希望变量“type”代表一个类型,该类型必须是类MyClass 的子类。为了清楚起见,我不希望“类型”本身成为MyClass 的子类,因为它应该代表一种类型。例如,不应允许调用 Test(typeof(int)),因为 'int' 不是 MyClass 的子类。
在 C# 中可以吗?
更新: 我花了很长时间试图在网上找到解决方案后问了这个问题,但事实证明之前已经在这里问过这个问题:C#: Restricting Types in method parameters (not generic parameters) 我错过了。太糟糕了,即使该线程中的答案似乎也无法正确解决问题。
更新 2: 事实证明(请参阅此问题的解决方案),可以使用泛型而不是将参数传递给方法,而且它似乎工作得很好。
【问题讨论】:
-
使用泛型参数?
-
还有...
MyClass在哪里?我在您的代码中没有看到它。 -
可以使用泛型,但问题已明确。
-
Test<T>() where T: MyClass -
@yyy 所有类型都是 not 类型的子类。所有类型都是
Object的子类。
标签: c#