default
키워드는 C#에서 무엇을 사용합니까?- C# 3.0에서 소개 되었습니까?
답변
default
키워드는 여러 용도로 사용되기 때문에 상황에 맞는 키워드입니다. 유형의 기본값을 반환하는 새로운 C# 2 의미를 언급하고 있다고 생각합니다. 참조 유형의 경우 이것은 null
이고 값 유형의 경우이 새로운 인스턴스는 모두 0이됩니다.
여기에 무슨 뜻인지 보여주기 위해 몇 가지 예입니다 :
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 키워드는 사용 문맥에 따라 다른 의미를 가지고있다.
첫 사용 이후, 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
기본값을 사용하여 Generic Type
의 기본값을 얻을 수도 있습니다.
public T Foo<T>()
{
.
.
.
return default(T);
}
+1; IMO 이것은 가장 일반적인 사용법입니다 ... –
가장 일반적인 사용은 with generics이다; 은 "일반"유형 (예 : 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;
}
+1 on where T : new()와 default (T). 나는 T : new()가 generic 클래스의 전체 생성자를 호출하는 곳에서 더 선호한다. 그러나 default (T)는 new() 제약 조건을 만족할 수 없을 때 매우 유용합니다. 나는. 변경할 수없는/싱글 톤 new()를 허용하지 않습니다. –
"기본"키워드는 그것은 때문에 일반적인 재산을 사용하는 클래스 목록과 더 많은 종류의 같은 개체의 인스턴스를 초기화하는 데 도움이 : 당신은 생성자 제약 조건이 대조 할 수 있습니다 향후 (미래) 코드의 실수를 피하기위한 사전 방법으로 그 값을 모르는 경우 유형 기본값을 할당하는 데 도움이됩니다.
- 1. Delphi에서 "far"키워드를 사용하는 것은 무엇입니까?
- 2. CREATE PROCEDURE 명령에서 DEFAULT 키워드를 사용할 수있는 이유는 무엇입니까?
- 3. 새로운 동적 키워드를 대체 switch 문으로 사용하는 것은 나쁜 생각입니까?
- 4. groovy에서 "사용"키워드/메소드를 사용하는 것은 무엇입니까?
- 5. jquery에서 $ 대신 키워드를 사용하는 방법은 무엇입니까?
- 6. PHP 클래스에서 공개 키워드를 사용하는 이유는 무엇입니까?
- 7. C에서 중첩 루프의 수를 제한하는 것은 무엇입니까?
- 8. C에서 주소를 전달하는 것과 동일한 것은 무엇입니까?
- 9. VB.NET에서 제네릭을 사용하는 것은 무엇입니까?
- 10. 변수, 함수 및 클래스 등의 객체에 "정적"키워드를 사용하는 것은 무엇입니까?
- 11. fuslogvw에서 Default/NativeImage의 의미는 무엇입니까?
- 12. 장점과 C#에서이 키워드를 사용하는 단점
- 13. 키워드를 사용하는 PHP MYSQL 검색 엔진
- 14. ConfigParser에서 사용하는 구성 파일에서 DEFAULT 섹션의 용도는 무엇입니까?
- 15. 다른 이벤트 처리기에서이 키워드를 사용하는 방법
- 16. 탐색기가 파일을 여는 데 사용하는 것은 무엇입니까?
- 17. ASP.NET에서 @outputCache 지시어를 사용하는 것은 무엇입니까?
- 18. Thread 클래스에서 Thread.BeginThreadAffinity() 메서드를 사용하는 것은 무엇입니까?
- 19. C#에서 #pragma warning을 사용하는 것은 무엇입니까?
- 20. struts에서 <html : html을 사용하는 것은 무엇입니까?
- 21. PHP에서 mysql_rollback() 함수를 사용하는 것은 무엇입니까?
- 22. C++에서 const 오버로드를 사용하는 것은 무엇입니까?
- 23. Joomla 데이터베이스에서 아래 표를 사용하는 것은 무엇입니까?
- 24. Java Swing에서 AccessibleContext를 사용하는 것은 무엇입니까?
- 25. org.apache.hadoop.mapred.Mapper에서 'key K1'을 사용하는 것은 무엇입니까?
- 26. OCSP 응답에서 responderID를 사용하는 것은 무엇입니까?
- 27. WPF에서 Dispatcher 객체를 사용하는 것은 무엇입니까?
- 28. Solr에서 "multiValued"필드 유형을 사용하는 것은 무엇입니까?
- 29. 페이스 북에서 무한 세션을 사용하는 것은 무엇입니까?
- 30. 함수 내에서 return 문을 사용하는 것은 무엇입니까?
http://stackoverflow.com/questions/367378/returning-a-default-value-c –
[참조하십시오!] (http://msdn.microsoft.com/en-us/library/vstudio/83fhsxwc .aspx) – MasterMastic
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/default –