显式指定参数,类似这样:DynamicTHeaderNode(nodes: new DynamicTHeaderNode());
我试了下你的代码编译OK啊。并且确实params在最后面。
啊,那我这里怎么通不过呢?
编译肯定能通过,主要是调用这个函数的时候就通不过了。
@纯粹的郭子: 我编译了下面代码
public class DynamicTHeaderNode { public DynamicTHeaderNode(string name, bool isVisible = true, params DynamicTHeaderNode[] nodes) { } }
你的报什么错呢?还是因为.net的版本不对呢?.net4.0下我编译OK
@滴答的雨:
你构造一个DynamicTHeaderNode它就通不过了,例如:
DynamicTHeaderNode node = new DynamicTHeaderNode("a",
new DynamicTHeaderNode("a1"),
new DynamicTHeaderNode("a2"));
这个调用就有问题了。
@滴答的雨:
你构造一个DynamicTHeaderNode它就通不过了,例如:
DynamicTHeaderNode node = new DynamicTHeaderNode("a",
new DynamicTHeaderNode("a1"),
new DynamicTHeaderNode("a2"));
这个调用就有问题了。
@纯粹的郭子:
1楼乃高人也。
调用过程中你要么全部给出,要么“顺序”给出部分参数,要么使用命名式参数(使用命名参数你可以不顾虑参数的顺,没列出的命名参数将使用默认值),如下:
DynamicTHeaderNode node = new DynamicTHeaderNode(name:"a",nodes: new DynamicTHeaderNode[] { new DynamicTHeaderNode("a1"), new DynamicTHeaderNode("a2") } );
@滴答的雨:
恩,1楼是个好解决方案,我也找到一个解决方案,只要重载一个函数就好了,就达到一样的调用效果了。
谢谢您。
@滴答的雨:
DynamicTHeaderNode node = new DynamicTHeaderNode(name:"a",nodes: new DynamicTHeaderNode[] { new DynamicTHeaderNode("a1"), new DynamicTHeaderNode("a2") } );
其实这种写法我不太喜欢,页面端调用的时候过于繁琐,还要写参数名字,给前段使用者不好的调用方式,所以我使用了重载解决这个问题。