【问题标题】:using the 'class' keyword as/in a method argument in c#在 C# 的方法参数中使用“类”关键字作为/在方法参数中
【发布时间】:2009-08-18 13:29:52
【问题描述】:

我不确定我在哪里看到的,而且我肯定没有通过编译器获得语法。 是否可以将 'class' C# 关键字用作方法参数签名的一部分?

foo(字符串 x, 类 y) { }

其他人看到这样的东西吗? 谢谢, -基因

【问题讨论】:

  • 这真的取决于你想怎么称呼它;可能是 objectType 或泛型 - 也可能是其他一些。

标签: c# class keyword


【解决方案1】:

你应该使用对象吗?看起来您正在尝试指定一个可以具有任何类型的参数,在这种情况下您应该使用对象,因为一切都派生自它。

【讨论】:

    【解决方案2】:

    我认为你不能像在你的例子中那样使用它,但是如果你想使用“类”这个词作为参数名称,可以通过在它前面加上 @:

    foo(string @class) { }
    

    【讨论】:

      【解决方案3】:

      可以在泛型方法定义中使用词类:

      foo<T>(T object) where T:class
      

      【讨论】:

        【解决方案4】:

        如果您希望能够将 y 作为任何东西传递,请使用 object:

        foo(string x, class y) { }
        

        如果您想声明 y 必须是类的对象 - 例如不是结构或接口,请使用泛型。

        foo<MyType>(string x, MyType y) where MyType : class { }
        

        【讨论】:

          猜你喜欢
          • 2012-10-30
          • 1970-01-01
          • 1970-01-01
          • 2010-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-18
          • 2011-01-28
          相关资源
          最近更新 更多