switch 的 default 标签

在 switch 块中,指定若条件表达式或常量与其余 case 均不匹配,则运行的语句块。

public static void FF考察分数 ( string 分数 )
    {
    switch ( 分数 )
        {
        case "A":
            Console . WriteLine ( $"你考的太好了!" );
            break;
        case "B":
            Console . WriteLine ( $"你考的还不错!" );
            break;
        case "C":
            Console . WriteLine ( $"你考的不太好!" );
            break;
        case "D":
            Console . WriteLine ( $"你考的很差!" );
            break;
        default:
            Console . WriteLine ( $"你考的是些啥?" );
            break;
        }
    }

上例中的代码显示了输入分数(ABCDE)确定和你说啥的 switch,实际上,只要不是 ABCD 中的某一个,代码都会返回“你考的是写啥?”。

default 运算符

default 运算符的实参必须是类型或类型形参的名称,如以下示例所示:

static void Main(string[] args)
    {
    Console . WriteLine( default ( int ) ); // 输出 0
    Console . WriteLine( default ( object ) is null ); // 输出 True(默认的 object 为 null)
    Console . WriteLine ( string . IsNullOrEmpty ( default ) ); // 输出 True(默认的 string 为空字符串)
    FF输出类的默认值< int > ( ); // 输出 0
    FF输出类的默认值< int? > ( ); // 输出 null,因为是可以为 null 的 Nullable`1[System . Int32]
    FF输出类的默认值< Complex > ( ); // 输出 <0, 0>
    FF输出类的默认值< List <int> > ( ); // 输出 null
    }

public static void FF输出类的默认值 < T > ( )
    {
    var m = default ( T );
    Console . WriteLine ( $"{typeof ( T )} 类的默认值是:{( m == null ? "null" : m )}。" );
    }

default 文本

当编译器可以推断表达式类型时,可以使用 default 文本生成类型的默认值。 default 文本表达式生成与 default(T) 表达式(其中,T 是推断的类型)相同的值。 可以在以下任一情况下使用 default 文本:

  • 对变量进行赋值或初始化时。
  • 在声明可选方法参数的默认值时。
  • 在方法调用中提供参数值时。
  • 在 return 语句中或作为表达式主体成员中的表达式时。

下面的示例演示 default 文本的用法:

public static T? [ ] FF初始化数组 < T > ( int 长度 , T? 初始化值 = default )
    {
    if ( 长度 < 0 )
        {
        throw new ArgumentOutOfRangeException ( nameof ( T ) , "数组的长度不能小于零。" );
        }
    var 数组 = new T? [ 长度 ];
    for ( int i = 0 ; i < 长度 ; i++ )
        {
            数组 [ i ] = 初始化值;
        }
        return 数组;
    }

    public static void FF显示 < T > ( T [ ] 值s ) => Console . WriteLine ( $"【 {string . Join ( "," , 值s )} 】" );

FF显示 ( FF初始化数组 < int > ( 3 ) ); // 输出 【 0, 0, 0 】
FF显示 ( FF初始化数组 < bool > ( 4 , default ) ); // 输出 【 false, false, false, false 】
Complex chzh = default;
FF显示 ( FF初始化数组 < Complex > ( 5 , chzh ) ); // 【 <0; 0>,<0; 0>,<0; 0>,<0; 0>,<0; 0> 】

提示:使用 .NET 样式规则 IDE0034 来指定代码库中使用 default 文本的首选项。


兔子码农
3 声望1 粉丝

一个酒晕子