C# 4.0 - 如何处理可选的字符串参数

标签 c# .net string c#-4.0 optional-parameters

此代码无效:

private void Foo(string optionalString = string.Empty)
{
   // do foo.
}

但是这段代码是:

private void Foo(string optionalString = "")
{
   // do foo.
}

为什么?因为 string.Empty 是只读字段,不是常量,可选参数的默认值必须是编译时常量。

所以,关于我的问题......(好吧,关注)

这是我必须做的:

private const string emptyString = "";

private void Foo(string optionalString = emptyString)
{
   // do foo.
   if (!string.IsNullOrEmpty(optionalString))
      // etc
}

你们如何处理可选的字符串参数?

为什么他们做不到String.Empty编译时常量?

最佳答案

嗯... string optionalParm = ""又出了什么问题?为什么那么糟糕?在这种情况下,你真的认为你需要一个空字符串的符号常量吗?那这个怎么样?

const int Zero = 0;

void SomeMethod(int optional = Zero) { }

你觉得这很傻吗?

关于C# 4.0 - 如何处理可选的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606301/

相关文章:

c# - 数据网格 : Have a stable/fixed row for a "group" of items

java - 批处理字符串包含操作优化?

python - Numpy 字符串数组用字符串填充

c# - 获取 Azure EventHub 的项目计数

c# - ThreadPool 和带有 while(true) 循环的方法?

c# - 为什么隐藏和显示 mdi child 会移动 child ?

.net - 为什么 MSMQ 比 WCF QueueService 快?

c# - 无法在图片内打印标签

c# - 如何确保服务不被循环查找其 api key

c# - 在一定数量的字符和换行符之后分割字符串。在 C# 中