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 文本的首选项。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。