c#中的变体数组
Posted
技术标签:
【中文标题】c#中的变体数组【英文标题】:Array of Variants in c# 【发布时间】:2017-03-08 00:52:04 【问题描述】:在 c# 中,我想声明一个带有动态数组的函数,该数组接收任何类型的数据原始类型,例如(字符串、整数、双精度、日期时间 ....),但这种类型不是 Object,只是基本类型。 有办法做到这一点吗?
【问题讨论】:
字符串不是原始的。字符串是一个对象。此外,考虑到所有结构、类无论是隐式还是显式地继承 Object 类的事实,是的,可以使用对象类型作为参数。此外,您可能会查看对象类型参数数组。 有点不清楚,你有没有考虑过ArrayList? 【参考方案1】:上面的代码可以工作,但是有一个限制,他不能处理不同类型的数据,比如
MyFunc(new[] "alpha", 123, 01-02-2002);
以下代码适用于字符串、整数和日期
public bool ArrayVariant(string pQuery, ICollection collection)
foreach (var item in collection)
//do something with item
调用函数
ArrayVariant( "any data", new dynamic[] "teste", 0, DateTime.Now);
【讨论】:
【参考方案2】:怎么样
public static void MyFunc(params object[] items)
foreach (object item in items)
// Do somthing with item
这样称呼
MyFunc("test", 0, DateTime.Now);
【讨论】:
以上是关于c#中的变体数组的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中将查询参数作为参数传递给 BigQuery 中的 IN 运算符的正确方法