小编evg*_*sa3的帖子

C#params object []奇怪的行为

考虑这个代码

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] strings = new string[] { "Test1", "Test2", "Test3" };

            int[] ints = new int[] { 1, 2, 3, 4 };

            Test(strings);

            Test(ints);
        }

        public static void Test(params object[] objects)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个页面https://msdn.microsoft.com/fr-ca/library/w5zay9db.aspx

我希望(params object []对象)是一个元素的数组,以字符串[]作为第一个元素,但是当我调试时,我看到(params object []对象)是{"Test1","Test2" ","Test3"}.

但是,使用int [],我得到一个object [],其中int []作为第一个元素.

用字符串

有了整数

这是未定义的行为吗?这取决于.Net框架版本/ Mono版本吗?

c# arrays casting params

19
推荐指数
2
解决办法
2266
查看次数

NUnit的[TestCaseSource]有多个参数,比如MbUnit的[Factory]

是否可以将NUnit的[TestCaseSource]属性与多个参数一起使用?这是我的代码(从MbUnit迁移):

public IEnumerable<object[]> GetTestSwitchMultiItems()
{
    yield return new object[] { SwitchType.Sell, 0.94733, 
                       new SwitchSourceItem[] { new SwitchSourceItem(1176, 100, 50, SwitchSourceItem.QuantityType.TotalQuantity, SwitchType.Sell)}, 
                       new SwitchEquivalentItem[] { new SwitchEquivalentItem(415318955, 35, 25, SwitchType.Buy), new SwitchEquivalentItem(4348, 65, 45, SwitchType.Buy) } };

    yield return new object[] { SwitchType.Sell, 0.94733, 
                       new SwitchSourceItem[] { new SwitchSourceItem(1176, 100, 50, SwitchSourceItem.QuantityType.TotalQuantity, SwitchType.Sell)}, 
                       new SwitchEquivalentItem[] { new SwitchEquivalentItem(415318955, 15, 25, SwitchType.Buy), new SwitchEquivalentItem(4348, 25, 45, SwitchType.Buy), 
                                                    new SwitchEquivalentItem(430397879, 20, 15, SwitchType.Buy), new SwitchEquivalentItem(5330, 20, 85, SwitchType.Buy)} };
}

[Test, TestCaseSource("GetTestSwitchMultiItems")]
public …
Run Code Online (Sandbox Code Playgroud)

mbunit nunit unit-testing

7
推荐指数
1
解决办法
4541
查看次数

标签 统计

arrays ×1

c# ×1

casting ×1

mbunit ×1

nunit ×1

params ×1

unit-testing ×1