C#默认可选参数选择器

时间:2010-07-13 12:40:27

标签: c# .net parameters constructor optional-parameters

    public ClassType(string type) {
        Type = type;
    }
    public ClassType(string type,bool isArray=false) {
        Type = type;
        IsArray = isArray;
    }


    ClassType ct = new ClassType("adsf");

选择了哪个构造函数?

2 个答案:

答案 0 :(得分:7)

不需要可选参数的重载。请注意,这里只是一个“是”或“否”的决定:“没有自动填充的可选参数”优于“自动填充的一些可选参数”,但是填写的1或2之间没有偏好。(这将是不明确的。)

来自C#4规范的第7.5.3.2节:

  

否则,如果M P 的所有参数都有   一个相应的论点,而   默认参数需要   替换至少一个可选的   M Q 中的参数则M P 优于   中号<子> Q

答案 1 :(得分:1)

正如乔恩所说,用两个词说,第一个。比赛是'清洁'。