- C# 中的
default
关键字有什么用? - 它是在 C# 3.0 中引入的吗?
default
关键字有什么用?default
关键字是有多种用途的,它具有上下文含义。我猜测你指的是其新的 C# 2 意义,即返回类型的默认值。对于引用类型来说,这是 null
,对于值类型来说,这是一个全零实例。
以下是一些示例,以说明我的意思:
using System;
class Example
{
static void Main()
{
Console.WriteLine(default(Int32)); // Prints "0"
Console.WriteLine(default(Boolean)); // Prints "False"
Console.WriteLine(default(String)); // Prints nothing (because it is null)
}
}
您可以使用default
来获取泛型类型
的默认值。
public T Foo<T>()
{
.
.
.
return default(T);
}
default(string)
等),但在手写代码中这种情况很少见。default(TypeName)
。TryGetValue
模式:public static bool TryGetValue(string key, out T value) {
if(canFindIt) {
value = ...;
return true;
}
value = default(T);
return false;
}
在这里,我们需要给出一个值来退出方法,但调用者并不关心它是什么。你可以将其与构造函数约束进行对比:
public static T CreateAndInit<T>() where T : ISomeInterface, new() {
T t = new T();
t.SomeMethodOnInterface();
return t;
}
默认关键字在不同的使用环境下具有不同的语义。
第一个用法是在 switch 语句中,自 C# 1.0 开始提供:
http://msdn.microsoft.com/en-us/library/06tc147t(VS.80).aspx
第二个用法是在泛型中,在初始化泛型类型实例时使用,自 C# 2.0 开始提供:
http://msdn.microsoft.com/en-us/library/xwth0h0d(VS.80).aspx
“default”关键字(除了 switch-case)可帮助您初始化类、列表等对象的实例。它被使用是因为其通用属性,当您不知道其值时,它可以帮助您分配类型的默认值,以避免在将来的代码中出现错误。