方法参数数组默认值[重复]

2024-05-01

在 C# 中,可以在方法中使用默认参数值,例如:

public void SomeMethod(String someString = "string value")
{
    Debug.WriteLine(someString);
}

但现在我想使用一个数组作为方法中的参数,并为其设置一个默认值。
我想它应该看起来像这样:

public void SomeMethod(String[] arrayString = {"value 1", "value 2", "value 3"})
{
    foreach(someString in arrayString)
    {
        Debug.WriteLine(someString);
    }
}

但这是行不通的。
如果这可能的话,是否有正确的方法可以做到这一点?


如果这可能的话,是否有正确的方法可以做到这一点?

这是不可能的(直接),因为默认值必须是以下之一(来自可选参数 http://msdn.microsoft.com/en-us/library/dd264739.aspx):

  • 常量表达式;
  • new ValType() 形式的表达式,其中 ValType 是值类型,例如枚举或结构;
  • default(ValType) 形式的表达式,其中 ValType 是值类型。

创建数组不适合可选参数的任何可能的默认值。

这里最好的选择是进行重载:

public void SomeMethod()
{
    SomeMethod(new[] {"value 1", "value 2", "value 3"});
}


public void SomeMethod(String[] arrayString)
{
    foreach(someString in arrayString)
    {
        Debug.WriteLine(someString);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方法参数数组默认值[重复] 的相关文章

  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 我应该在单元测试中使用 AutoMapper 吗?

    我正在为 ASP NET MVC 控制器方法编写单元测试 这些控制器依赖于IMapper 我创建的用于抽象 AutoMapper 的接口 使用 Castle Windsor 通过构造函数注入传入 动作方法使用IMapper从领域对象映射到
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • Linq Where 本地计数器关闭在 VS watch 中的结果不同

    我尝试删除前 3 个元素array与 LinQWhere扩展功能 这是一个例子 var array new 1 2 3 4 5 6 7 8 9 var count 3 var deletedTest1 0 var test1 array W
  • 字节到二进制字符串 C# - 显示所有 8 位数字

    我想在文本框中显示一个字节 现在我正在使用 Convert ToString MyVeryOwnByte 2 但是 当字节开头有 0 时 这些 0 就会被删除 例子 MyVeryOwnByte 00001110 Texbox shows g
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • _mm_max_ss 在 clang 和 gcc 之间有不同的行为

    我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
  • 在生产者-消费者情况下使用条件变量

    我正在尝试了解条件变量以及如何在生产者 消费者情况下使用它 我有一个队列 其中一个线程将数字推入队列 而另一个线程从队列中弹出数字 当生产线程放置一些数据时 我想使用条件变量向消费线程发出信号 问题是有时 或大多数时候 它只将最多两个项目推
  • 使用 AutoMapper 进行 LINQ GroupBy 聚合

    试图让查询工作 但老实说不确定如何 或者是否可能 进行它 因为我尝试过的一切都不起作用 共查询6个表 Person PersonVote PersonCategory Category City FirstAdminDivision Per
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • C# ToString("MM/dd/yy") 删除前导 0 [重复]

    这个问题在这里已经有答案了 可能的重复 格式化 NET DateTime Day 不带前导零 https stackoverflow com questions 988353 format net datetime day with no
  • 从由空格分隔的单个输入整数列表创建二维数组

    我正在解决一些问题geeksforgeeks我遇到了一个特定的问题 其中在测试用例中提供了输入 如下所示 2 2 denotes row column of the matrix 1 0 0 0 all the elements of th
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • 删除对象时指针自动指向空

    假设我有一个对象和其他几个不同类类型的对象中的 10 个指向它的指针 如果对象被删除 这些指针必须设置为空 通常我会将对象的类与具有指向它的指针的类互连 以便它可以通知它们它正在被删除 并且它们可以将它们的指针设置为空 但这也有一个负担 即
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 从全日历中获取选定的日期

    我将日历添加到我的 asp net mvc 2 应用程序中here http arshaw com fullcalendar 我想选择参加活动的选定日期 我怎样才能获得选定的日期 我还想将此日期和相应的事件保存到数据库中 这还怎么办 设置插
  • 如何使用 C 将带有 2 个变量的 IF 语句转换为 switch 函数?

    我有一个 IF 语句 我想将其转换为 Switch 语句 但它有 2 个变量 在C上可以实现吗 这是一个石头 剪刀 布的游戏 R代表石头 P代表布 S代表剪刀 char play1 play2 printf nPlayer 1 Enter
  • 使用异步函数等待 onclick 的用户输入

    我是异步新手 也许只是不了解基础知识 但我试图通过调用弹出模式并等待用户提交数据的异步函数来等待来自 onclick 的用户输入 在找到一两个甚至提到使用异步等待页面事件的来源后 这对我的特定任务并不是特别有帮助 我想出了这个 asnyc
  • 如何将 Netbeans 项目导入 Eclipse

    我想将我的 NetBeans 项目转移到 Eclipse 这是一个网络应用程序项目 我将 war 文件导入到 Eclipse 中 但无法获取 Java 文件 并且 war 文件给了我很多错误 导入整个项目的最佳方式是什么 另一种简单的方法如
  • Togglz 我的 SpringBoot 的 Yml/Yaml 配置不起作用

    尝试使用 Togglz 创建功能切换 在我的应用程序中进行了以下配置 代码 bootstrap yml togglz enabled true features FEATURE ONE true 功能枚举类 public enum AppF
  • 如何从对象文字数组中切片数组?

    我有这个数组 其中每个索引都包含一个对象文字 所有对象字面量都具有相同的属性 某些对象文字对于给定属性具有相同的值 我想创建一个包含only那些对象文字 我的想法是对数组进行排序 并将其切片成一个新数组 这是数组 var arr arr 0
  • virtualenv、python 和 subversion

    我正在尝试在 python subversion SWIG 库中使用virtualenv no site packages环境 我怎样才能做到这一点 你可以从 svn 将其安装在 virtualenv 中 source home you v
  • 您在一次渲染中修改了 *** 两次

    升级到 1 13 后 出现此异常 但我不知道问题出在哪里 我也找不到任何有用的资源来解决我的问题 我在另一个计算属性中设置的属性会发生这种情况 但这个属性肯定只被调用一次 我创建了一个 jsbin 示例 http emberjs jsbin
  • 如何在 Mac 上升级 Docker? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试了 docker machine升级 并做了一些工作 但我似乎没有最新的 CLI 如果我执行 docker 版本 我会得到 Clie
  • 无法从“https://services.gradle.org/distributions/gradle-2.1-all.zip”安装 Gradle 发行版

    我是 gradle 新手 我只是尝试在 IntelliJ 中创建一个新的 Android Gradle 项目 填写完必需品后 它开始下载一些东西 这花了几个小时 所以我决定强制退出 IDE 并再次打开项目 And now I am gett
  • 函数不会在所有代码路径上返回值。使用结果时,运行时可能会发生空引用异常

    我收到此错误 函数 getkey 不会在所有代码路径上返回值 当结果为空引用异常时 可能会在运行时发生 用过的 到以下代码 Public Function getkey ByVal id As String Dim cmd As SqlCo
  • 在执行方法的括号内声明变量

    默认情况下 变量在方法执行之前定义 例如 DateTime myDate if DateTime TryParse date out myDate 我们可以实现内联声明 并且该变量可以在外部使用 例如 if DateTime TryPars
  • 如何使用 Node JS 对包含小数/尾随零的数据生成哈希

    在尝试验证 Node JS 中的 Authorize net webhook 通知时 我遇到了以下与小数 尾随零有关的问题 Authorize net 使用 HMAC SHA512 以及 Webhook 通知正文和商家的签名密钥形成哈希 该
  • 私人 NuGet Feed - 记住密码

    每当我在 Visual Studio 中更新 NuGet 包时 系统都会提示我输入有关私有 NuGet 源的用户名和密码 尽管我勾选了方框 记住我的密码 后续 NuGet 更新时系统会提示我输入密码 如何让它正确记住我的密码 这是来自 Vi
  • 删除行时 QModelIndex 变得无效

    我正在子类化QAbstractItemModel显示项目QTreeView 并且在这个子类中 projectModel 我有一个功能可以删除树视图中当前选定的索引 Component是用于表示模型所有成员的类 void projectMod
  • Spark DataFrame 删除重复项并保留第一个

    问题 在 pandas 中 当删除重复项时 您可以指定要保留哪些列 Spark Dataframes 中有等效的吗 Pandas df sort values actual datetime ascending False drop dup
  • 易失性限定符是否会取消该内存的缓存?

    在本文中 http www drdobbs com parallel 易失性 vs 易失性 212701484 pgno 2 http www drdobbs com parallel volatile vs volatile 212701
  • 如何获取R中的脚本路径? [复制]

    这个问题在这里已经有答案了 可能的重复 Rscript 确定执行脚本的路径 https stackoverflow com questions 1815606 rscript determine path of the executing
  • 隐藏 IntelliJ 2020 代码编辑器中浮动的“1 使用”指示器

    不知何故 我做了一些事情让 IntelliJ 指示类中每个变量的多种用法 诸如 1 用法 之类的文本出现在每个变量声明上方 我怎样才能关闭它 See the Show hints的部分Code Vision在首选项 设置下Editor gt
  • 方法参数数组默认值[重复]

    这个问题在这里已经有答案了 在 C 中 可以在方法中使用默认参数值 例如 public void SomeMethod String someString string value Debug WriteLine someString 但现