주 메뉴 열기

wwiki β

바뀜

Constraints on type parameters

114 바이트 추가됨, 2021년 10월 28일 (목) 07:08
편집 요약 없음
!설명
|-
|where T :struct
|null을 허용하지 않는 value type이어야 합니다.
|-
|where T : class
|참조형식이어야 한다. 이 제약조건은 모든 클래스, 인터페이스, delegate, 배열 형식에도 적용된다. C# 8.0이상의 null 허용 컨텍스트에서 T는 null을 허용하지 않아야 한다.
|-
|where T :class?
|
|-
|where T :notnull|nullable이 아닌 형식이어야 한다. (띄어쓰지 않음)
|-
|where T :unmanaged
|
|-
|where T :new()
|매개변수가 없는 public 생성자가 있어야 한다. 다른 제약조건과 함께 사용하는 경우 마지막에 지정해야 한다. struct 또는 unmanaged 제약조건과 결합할 수 없다.
|-
|where T :''<base class name>''
|base class이거나 파생클래스이어야 한다. c# 8.0이상에서 null 허용 컨텍스트에서 null을 허용하지 않는 참조형식이어야 한다.
|-
|where T :''<base class name>''?
|
|-
|where T : ''<interface name>''
|
|-
|where T : ''<interface name>?''
|
|-
System.Text.StringBuilder sb = new System.Text.StringBuilder("target");
string s2 = sb.ToString();
// 이게 false라는 거임
OpEqualsTest<string>(s1, s2);
}
</syntaxhighlight>값 일치는 where T : IEqualtable<T> 또는 where T : IComparable<T> 제약조건을 적용하고 ??????적용해야 한다.
=== Constraining multiple parameters (여러 매개 변수 제한) ===
<syntaxhighlight lang="csharp">
class Base { }
=== Enum constraints ===
[[분류:.net]]
편집
2,431