- Jaki jest pożytek ze słowa kluczowego
default
w języku C#? - Czy wprowadzono go w C# 3.0?
Odpowiedz
Słowo kluczowe default
jest kontekstowe, ponieważ ma wiele zastosowań. Zgaduję, że odnosisz się do jego nowszego znaczenia C# 2, w którym zwraca domyślną wartość typu. Dla typów odniesienia jest to null
, a dla typów wartości to nowe wystąpienie zerowe.
Oto kilka przykładów, aby wykazać, co mam na myśli:
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 kluczowe ma różne semantykę w zależności od kontekstu użycia.
pierwszego zastosowania w kontekście switch, dostępny od C# 1.0:
http://msdn.microsoft.com/en-us/library/06tc147t(VS.80).aspx
Drugi wykorzystywany jest w związku z generycznych przy inicjalizacji ogólny przypadek, dostępny od C# 2.0:
http://msdn.microsoft.com/en-us/library/xwth0h0d(VS.80).aspx
można użyć domyślnego aby uzyskać wartość domyślną w Generic Type
również.
public T Foo<T>()
{
.
.
.
return default(T);
}
+1; IMO jest to najczęściej używane ... –
Najpopularniejszym zastosowaniem jest with generics; podczas gdy działa dla "zwykłych" typów (to jest default(string)
itp.), jest to dość rzadkie w ręcznie pisanym kodzie.
Jednak używam tego podejścia podczas generowania kodu, ponieważ oznacza to, że nie muszę sztywno kodować wszystkich różnych wartości domyślnych - mogę po prostu dowiedzieć się typu i użyć default(TypeName)
w wygenerowanym kodzie.
W generycznych, klasyczny wykorzystanie jest TryGetValue
wzór:
public static bool TryGetValue(string key, out T value) {
if(canFindIt) {
value = ...;
return true;
}
value = default(T);
return false;
}
Tutaj mamy przypisać wartość do wyjść metodę, ale rozmówca nie powinien naprawdę obchodzi, co to jest. Można kontrast to do ograniczenia konstruktora:
public static T CreateAndInit<T>() where T : ISomeInterface, new() {
T t = new T();
t.SomeMethodOnInterface();
return t;
}
+1 w przypadku, gdy T: new() vs default (T). Wolę gdzie T: new(), ponieważ wywołuje pełny konstruktor klasy ogólnej. Ale wartość domyślna (T) jest niezwykle przydatna, gdy nie można spełnić warunku new(). To znaczy. Niezmienny/singleton uniemożliwiający nowe(). –
„default” słowo kluczowe (oprócz przełącznika literami) pomaga zainicjować instancję obiektu, takich jak klasa, listy i więcej rodzajów Jest on stosowany ze względu na jego właściwości rodzajowego gdzie pomaga przydzielić domyślną wartość typów, gdy nie znasz jej wartości jako zaawansowanej metody unikania błędów w dalszym (przyszłym) kodzie.
- 1. Jaki jest pożytek ze słowa kluczowego "protected" w związku?
- 2. Możliwy błąd w obsłudze słowa kluczowego `default` w VS2015 C++
- 3. Jaki jest pożytek z typedef?
- 4. Jaki jest pożytek ze składni: =?
- 5. Alternatywy dla słowa kluczowego "using" w C#?
- 6. Użycie słowa kluczowego "this" w języku Java
- 7. Zasady korzystania z słowa kluczowego restrict w języku C?
- 8. Dlaczego warto używać słowa kluczowego globalnego w języku C#?
- 9. Równoważnik słowa kluczowego C# "as" w języku Java
- 10. F # odpowiednik słowa kluczowego `is` w języku C#?
- 11. Równoważnik słowa kluczowego Super w C#
- 12. Odpowiednik C++/CLI słowa kluczowego C# 'readonly'
- 13. Co to jest odpowiednik VB.NET słowa kluczowego C# readonly?
- 14. Co to jest odpowiednik VB.NET słowa kluczowego C# "is"?
- 15. Jaki jest pożytek z System.in.read()?
- 16. W Ethereum Solidity, jaki jest cel słowa kluczowego "memory"?
- 17. Jaki jest koszt zmiennego słowa kluczowego w systemie wieloprocesorowym?
- 18. Jaki jest cel słowa kluczowego `zewnętrzny` w Kotlinie?
- 19. Jaki jest pożytek z podkreślenia w formie wiążącej Clojure?
- 20. Co to jest odpowiednik słowa kluczowego C# 'var w języku Java?
- 21. Dlaczego używamy zmiennego słowa kluczowego w C++?
- 22. Czy istnieje odpowiednik słowa kluczowego C# "var" w C++/CLI?
- 23. Co to jest odpowiednik VB.NET domyślnego słowa kluczowego C#?
- 24. Czy zmiana definicji słowa kluczowego w C++ jest legalna?
- 25. Jaki jest pożytek z posiadania? w java
- 26. Jaki jest pożytek z __RequestVerificationToken?
- 27. Jaki jest pożytek z window.external?
- 28. C# Wzory użycia słowa kluczowego "is"
- 29. Co tak naprawdę jest celem słowa kluczowego "base" w języku C#?
- 30. Jaki jest właściwy sposób konwertowania słowa kluczowego clojure ze spacjami na ciąg znaków?
http://stackoverflow.com/questions/367378/returning-a-default-value-c –
[Zobacz to!] (Http://msdn.microsoft.com/en-us/library/vstudio/83fhsxwc .aspx) – MasterMastic
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/default –