- Для чого використовується
defaultключове слово в C #? - Це введено в C # 3.0?
defaultключове слово в C #?Відповіді:
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)
}
}
Ви можете використовувати значення за замовчуванням, щоб отримати значення за замовчуванням Generic Typeтакож.
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
Ключове слово "за замовчуванням" (крім перемикача) допомагає вам ініціалізувати екземпляр такого об'єкта, як клас, список та інші типи. Використовується через загальну властивість, де допомагає призначати значення за замовчуванням типам, коли ви не знаєте його значення як попередній спосіб уникнути помилок у вашому подальшому (майбутньому) коді.