【发布时间】:2009-08-18 13:29:52
【问题描述】:
我不确定我在哪里看到的,而且我肯定没有通过编译器获得语法。 是否可以将 'class' C# 关键字用作方法参数签名的一部分?
foo(字符串 x, 类 y) { }
其他人看到这样的东西吗? 谢谢, -基因
【问题讨论】:
-
这真的取决于你想怎么称呼它;可能是
object、Type或泛型 - 也可能是其他一些。
我不确定我在哪里看到的,而且我肯定没有通过编译器获得语法。 是否可以将 'class' C# 关键字用作方法参数签名的一部分?
foo(字符串 x, 类 y) { }
其他人看到这样的东西吗? 谢谢, -基因
【问题讨论】:
object、Type 或泛型 - 也可能是其他一些。
你应该使用对象吗?看起来您正在尝试指定一个可以具有任何类型的参数,在这种情况下您应该使用对象,因为一切都派生自它。
【讨论】:
我认为你不能像在你的例子中那样使用它,但是如果你想使用“类”这个词作为参数名称,可以通过在它前面加上 @:
foo(string @class) { }
【讨论】:
可以在泛型方法定义中使用词类:
foo<T>(T object) where T:class
【讨论】:
如果您希望能够将 y 作为任何东西传递,请使用 object:
foo(string x, class y) { }
如果您想声明 y 必须是类的对象 - 例如不是结构或接口,请使用泛型。
foo<MyType>(string x, MyType y) where MyType : class { }
【讨论】: