【问题标题】:C# set default argument, string array (string[]) [duplicate]C#设置默认参数,字符串数组(字符串[])[重复]
【发布时间】:2017-02-16 16:46:54
【问题描述】:

我搜索了一些 C# 默认字符串参数的示例,发现是这样的。

字符串异常 = "John"

我需要为字符串 [] 设置默认值,但您还没有找到如何将字符串数组设置为 C# 方法的默认值。

static int startapp(string Source, string Destination, string[] Exceptions = { "John", "Paul", "Mary" })
            {
                 //do something
            }

【问题讨论】:

  • 我认为不允许在默认参数中使用数组字面量。我通常将它们设置为null,然后如果值为null,则在方法体中设置默认值。
  • 找到this. 似乎与您要执行的操作有关。
  • 这个答案看起来确实是一个更好的方法。感谢分享!

标签: c# parameters default


【解决方案1】:

抱歉,这必须是评论,但我没有足够的声誉来添加评论。您可能正在寻找的是这个答案

optional array Parameter in C# [duplicate]

它说(来自文档)

A default value must be one of the following types of expressions:

    a constant expression;

    an expression of the form new ValType(), where ValType is a value type, such as an enum or a struct;

    an expression of the form default(ValType), where ValType is a value type.

【讨论】:

    【解决方案2】:

    来自 MSDN

    默认值必须是以下表达式类型之一:
    - 一个常量表达式;
    - new ValType() 形式的表达式,其中 ValType 是值类型,例如枚举或结构;
    - default(ValType) 形式的表达式,其中 ValType 是值类型。

    在您的情况下,string[] 是一个引用类型。
    对于引用类型,默认值始终为 null

    当您尝试将新数组初始化为默认类型时,Visual Studio 证明了一个解释:

    默认参数值必须是编译时常量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 2015-03-27
      • 2013-08-04
      • 2016-11-11
      • 1970-01-01
      • 2017-09-21
      • 2016-03-22
      相关资源
      最近更新 更多