c# - 如何允许方法接受字符串或整数?

标签 c# .net c#-4.0 methods

使用 C# 4.0,有没有办法允许方法(不创建重载)接受字符串或 int,然后允许我检测传入的类型?

最佳答案

由于您使用的是 C# 4.0,因此您可以编写 generic method .例如:

void MyMethod<T>(T param)
{
    if (typeof(T) == typeof(int))
    {
        // the object is an int
    }
    else if (typeof(T) == typeof(string))
    {
        // the object is a string
    }
}

但是你应该非常认真地考虑这是否是一个好主意。上面的例子有点代码味道。事实上,泛型的全部意义在于泛型。如果您必须根据传入对象的类型对代码进行特殊处理,则表明您应该改用重载。这样,每个方法重载都会处理其独特的情况。我想不出这样做有什么坏处。

关于c# - 如何允许方法接受字符串或整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907631/

相关文章:

c# - 应该如何在多线程应用程序中使用 StackExchange.Redis IDatabase 对象?

c# - 在 C# 中拦截对属性 get 方法的调用

c# - 秒表的 Elapsed Ticks 属性差异

c#-4.0 - 我们如何在 C# 中使用回调函数

windows-phone-7 - 这个字节数组是怎么回事?

javascript - Signalr 在 IIS AppPool 回收后永远重新连接

c# - 如何从路由中删除 "api"- Azure Functions v3 - host.json routePrefix 空字符串不起作用

c# - Sharepoint 中的隐藏标题字段不起作用

c# - 在 Xamarin.Forms 中,如何从项目文件夹中读取 Assets 列表?

c# - 订阅/取消订阅(添加/删除)扩展方法内的事件