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 运算符的正确方法

匹配任何变体的 jQuery IndexOf 数组

如何在QT QML中替换变体数组文本

使用 C# 检测破坏性 SQL 查询

Excel VBA:将变体数组返回到选定范围时需要 255 转置字符限制的解决方法

.NET C#杂谈:变体