【问题标题】:How to check typeof parameters in method? [closed]如何检查方法中的typeof参数? [关闭]
【发布时间】:2013-08-01 00:47:05
【问题描述】:

如何使用帮助代码合约检查方法中的 typeof 参数?

我需要检查方法中的类型参数

【问题讨论】:

  • 您是指传入您的方法的对象类型还是为泛型参数指定的类型?
  • 你确定泛型不是要走的路吗?
  • 如果您对方法的参数类型有要求,为什么不简单地为它的参数编写正确的类型呢?
  • 作为调解员,我希望有一个更好的问题。你试过什么?你试过if (arg1.GetType() == typeof(SomeClass))吗?
  • 您问的问题是否与您 30 分钟前提出的问题相同,只是这次信息较少? stackoverflow.com/questions/17975546/…

标签: c# code-contracts


【解决方案1】:

怎么样

public void MyMethod(object parameter)
{
    if (parameter.GetType() == typeof(Int32))
    {
        //Do some stuff
    }
}

继续您的其他question

class ManagerCar : IBlalba
{
    public void Render(IViewTemplate template)
    {
        if (template.GetType() == typeof(CarViewTemplate))
        {
            //Do some stuff
        }
    }
}

【讨论】:

  • 这不使用 OP 要求的合约。
【解决方案2】:

我认为应该这样做:

Contract.Requires(yourParameter is YourType);

虽然我不得不说这听起来是个很糟糕的主意,除非你因为接口实现的原因需要使用未指定的类型。

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 2022-01-19
    • 1970-01-01
    • 2023-03-07
    • 2011-03-15
    • 1970-01-01
    • 2021-04-13
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多