相关疑难解决方法(0)

String.Empty和""(空字符串)有什么区别?

在.NET中,String.Empty和之间的区别是什么"",它们是可互换的,还是存在一些基本的参考或本地化问题,这些问题String.Empty将确保不是问题?

.net string double-quotes

278
推荐指数
11
解决办法
8万
查看次数

为什么String.Empty不是常量?

在.Net中为什么String.Empty只读而不是常量?我只是想知道是否有人知道该决定背后的原因是什么.

.net string constants readonly

182
推荐指数
3
解决办法
2万
查看次数

为什么DateTime.MinValue不能在C#中用作可选参数

我正在编写一种方法,它将DateTime值作为其中一个参数.我决定它是可选参数,所以我继续尝试DateTime.MinValue默认.

private void test(string something, DateTime testVar = DateTime.MinValue) {

}
Run Code Online (Sandbox Code Playgroud)

但是这会产生一个错误:

'testVar'的默认参数值必须是编译时常量.

使用此代码似乎工作得很好.

private void test(string something, DateTime testVar = new DateTime()) {

}
Run Code Online (Sandbox Code Playgroud)

我得到了建议,使用DateTime.MinValue而不是新的DateTime(),因为它是自我记录的.既然new DateTime()是基本相同的东西为什么DateTime.MinValue不能用?如果我把它留下来也会有任何潜在的问题new DateTime()吗?

c# optional-parameters

18
推荐指数
3
解决办法
5738
查看次数

Switch/case语句中的String.Empty生成编译器错误

如果String.Empty一样好"",那么编译器如何在语句中抛出string.Empty case呢?string.Empty在我看来,没有比这更稳定的了.谁知道?谢谢!

switch (filter)
            {
     case string.Empty:  // Compiler error "A constant value is expected"

                break;

                case "":  // It's Okay.
                    break;

            }
Run Code Online (Sandbox Code Playgroud)

c# string compiler-errors switch-statement

5
推荐指数
1
解决办法
1096
查看次数

String.Empty和可选参数中的""之间的区别

我有以下一小段代码让我感到有些困惑,因为我不熟悉C#.

我需要使用一个可选参数,如下所示:

private string GetSomething(object inputObject, string optionalString = "")
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.但是,如果我编辑上面的部分以遵循项目其余部分的编码标准,如下所示,我收到一个错误:

private string GetSomething(object inputObject, string optionalString = String.Empty)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

随着错误阅读

'optionalString'的默认参数值必须是编译时常量.

虽然我理解为什么它需要是一个常量,但为什么后者版本不会像第一个版本那样简单地优化和编译?在某些情况下有区别吗?
如果重要,我使用的是Visual Studio 2013,该项目是.NET 4.5.

c#

0
推荐指数
1
解决办法
99
查看次数