default 关键字可在switch语句或泛型代码中使用。
switch语句:指定默认标签。
泛型代码:指定类型参数的默认值。对于引用类型为空,对于值类型为零
switch语句
在switch语句中,如果没有任何case表达式与开关值匹配,则控制传递给跟在可选default标签后的语句。如果没有default标签,则控制传递到 switch 以外。
switch (key)
{
case 1:
Console.WriteLine("1");
break;
case 2:
Console.WriteLine("2");
break;
default:
Console.WriteLine("Sorry, no one matches!");
break;
}
泛型代码
在泛型类和泛型方法中,在预先未知以下情况时,如何将默认值分配给参数化类型 T:
T 是引用类型还是值类型。
如果 T 为值类型,则它是数值还是结构。
给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用 default 关键字,此关键字对于引用类型会返回空,对于数值类型会返回零。对于结构,此关键字将返回初始化为零或空的每个结构成员,具体取决于这些结构是值类型还是引用类型。
public class GenericClass<T>
{
public T Function(arg)
{
T temp = default(T);
if (arg != null) temp = arg.Favs;
return temp;
}
//...
}
注意:不仅可以在定义泛型类或者泛型方法的代码中可以使用default关键字,甚至在任何地方都可以使用该关键字。如下面代码。
static void Main(string[] args)
{
Console.WriteLine(default(int));
Console.WriteLine(default(string));
Console.WriteLine(default(Color));
}
//输出:
行1: 0
行2:
行3: Color [Empty]
分享到:
相关推荐
C#关键字整理 C#语言中有很多关键字,每个关键字都有其特定的用途和应用场景。以下是对C#关键字的整理和解释: 1. abstract关键字:用于修饰类、方法和属性。示例:修饰方法:public abstract void MyMethod(); ...
C#关键字是编程语言中的保留标识符,具有对编译器的特殊含义。它们在程序中具有特定的用途,因此不能用作普通的标识符,除非在它们前面加上@符号。例如,@if 是有效的标识符,但 if 不是,因为 if 是一个关键字。C#...
C#的关键字大全 C#语言中,关键字是对编译器具有特殊意义的预定义保留标识符,这些关键字不能在程序中用作标识符,除非它们有一个 @ 前缀。下面将对C#语言中的关键字进行详细的解释: 访问修饰符 访问修饰符用于...
在C#中,关键字是具有特殊含义的语言保留字,它们在程序中扮演着至关重要的角色,用来定义变量、控制流程、声明类型以及实现各种语言特性。下面将详细介绍C#中的关键字,并给出其用途和用法。 1. **访问修饰符**: ...
14. **C#新特性**:第六版将涵盖C#的最新版本特性,如nullable reference types、async streams、default interface methods等。 通过学习《精通C#--第六版》,读者不仅可以掌握C#语言的基本技能,还能了解到C#在...
C# 中的关键字(共 76 个) C# 中的关键字是语言的基本组成部分,它们定义了程序的结构、行为和语义。下面我们将详细介绍 C# 中的 76 个关键字。 abstract:标识一个可以扩展但不能被实体化的类或方法。抽象类不能...
C# 有一系列保留字或**关键字**,它们具有特殊的意义,不能用作标识符。以下是一些常见的关键字: - `abstract`:声明抽象类或抽象方法。 - `as`:用于将对象转换为指定类型,不会抛出异常。 - `base`:访问基类的...
"C#常用关键字及含义" C#是一种现代的高级语言,它提供了很多种关键字来实现不同的功能。这些关键字可以分为以下几类:类型关键字、控制流关键字、异常处理关键字、类和对象关键字、访问修饰符关键字等。 类型...
C#中的ref关键字详解 C#中的ref关键字是一个非常重要的概念,对于编程人员来说,正确理解ref关键字可以帮助他们更好地编写代码。在本文中,我们将详细地解释ref关键字的概念和用法,並结合实例代码来说明其正确用法...
在C# WinForm应用开发中,创建一个具备文本编辑功能的界面是常见的需求,而让关键字高亮显示则可以提高代码可读性和用户体验。本文将详细介绍如何在C# WinForm中利用FastColoredTextBox控件实现这一功能。 ...
// 先比较关键字,如果相等,再比较左子树,如果再相等,则比较右子树----如此递归 #region IComparable 成员 public override int CompareTo(object obj) { // TODO: 添加 BinaryTree.CompareTo 实现 // 因为...
- 添加额外属性:通过`[DefaultValue]`和`[Browsable]`属性自定义控件的属性,允许在设计时配置。 - 添加方法:可以创建自定义的方法来执行特定的操作,比如播放声音或显示弹出窗口。 5. **代码组织**: - 将...
以下是对c#范型中的特殊关键字where和default进行了详细的介绍,需要的朋友可以过来参考下
总结来说,`default`关键字在C#2.0泛型中的变化主要是从`T.default`转换为`default(T)`的语法形式。这个变化简化了代码,并确保了与C#语言规范的一致性。无论泛型类型参数是值类型还是引用类型,`default(T)`都能...
在看源码的时候看见了where和default,虽说default很常见,但是它的用法我却是第一次看到,哎,基础不扎实啊! 下面介绍下这两个特殊的关键字:一、Where关键字where 子句用于指定类型约束,这些约束可以作为泛型...
C#(C-Sharp)是一种面向对象的编程语言,广泛应用于...C#的关键字包括:class、struct、interface、enum、delegate、event、new、null、true、false、if、else、switch、case、default、while、do、for、foreach、b
### C# 关键字及其分类 #### 一、概述 C#是一种现代、面向对象的编程语言,广泛应用于各种软件开发场景中。为了确保代码的规范性和一致性,C#定义了一系列关键字,这些关键字对编译器具有特殊的意义,不能用作普通...
- **C# 8.0**:增加了默认接口方法(Default Interface Methods)、非空引用类型(Nullable Reference Types)等。 - **C# 9.0**:支持了顶级语句(Top-Level Statements)、记录(Records)等。 #### 访问计算 C#...