【发布时间】:2012-05-29 04:45:16
【问题描述】:
我一直在想:您是否支持在您的方法中仅使用 object 作为参数?我这样做的原因是超载。目前,我正在尝试创建一种适用于许多不同数据类型的方法:string、decimal、DateTime... 不胜枚举。
虽然有点乱,所以我正在考虑执行以下操作
public void GenericMethod(object val)
{
if (val is string)
// process as string
else if (val is decimal)
// process as decimal
else if (val is DateTime)
// do something for dt
else
// ...
}
您如何看待这种方法?会不会产生不必要的开销? (在类型检查期间)你实现了吗?告诉我...
编辑: 是的,只是一个旁注,我有点熟悉重载。但是当有超过 10 个重载时,它会变得有点烦人......
【问题讨论】:
-
虽然这在技术上可行,但它肯定不是一个好主意,除非你有一个非常令人信服的理由这样做。
-
这最终取决于您在方法中所做的事情以及您的方法对于每种类型的不同程度。理想情况下,如果它们都相似,您实际上会使用泛型并使参数泛型。如果它们完全不同,那么这绝对不是一个好主意。无法判断哪种情况适合您的情况。
标签: c# object methods parameters