C#实例化含数组成员的类时如何正确传入数组参数?
正确传入数组类型构造参数的实现方法
你写法出错的原因是:单独的{"left", "right", "forward"}只是数组初始化器,不能直接作为参数传递,必须和数组创建语法结合使用,以下是两种可行的实现方式:
写法1:显式声明数组类型(兼容所有C#版本)
明确指定数组类型后搭配初始化器使用,示例代码如下:exampleClassList.Add(new exampleClass(10, "bird", new string[] {"left", "right", "forward"}));写法2:隐式类型数组(C# 3.0及以上版本支持)
编译器可以根据初始化器内的元素类型自动推断数组类型,写法更简洁:exampleClassList.Add(new exampleClass(10, "bird", new[] {"left", "right", "forward"}));
注意:你定义的
exampleClass类中c字段默认初始化了长度为3的字符串数组,但构造函数中会把传入的数组直接赋值给c,如果传入的数组长度不等于3,最终c的长度会以你传入的数组为准,原初始化的长度3会被覆盖。
内容的提问来源于stack exchange,提问作者s16
相关产品推荐
相关产品推荐

