【发布时间】:2012-03-15 21:26:36
【问题描述】:
我有一个方法可以记录数据,并使用 params 关键字获取大量输入
public static void LogData<T>(params object[] parameter)
{
// log out the data
}
我想将输入限制为字符串和数字类型,我的第一个想法是使用 where 子句。一个明显的问题是您不能在 where 子句中使用具体类型,但您可以通过注意字符串和数字类型都是 IComparable 和 IConvertible 来解决这个问题。我认为这可能会有所帮助:
public static void LogData<T>(params T[] parameter)
where T : IComparable, IConvertible
{
// log out the data
}
这不起作用,因为所有输入都必须是一种类型。
有没有办法使用 params 关键字或其他语法将输入限制为字符串和数字类型?
【问题讨论】:
-
你为什么要这样做?这些约束可用的唯一原因是让程序员可以调用方法、创建对象等......
标签: c# constraints params