[c#] C #에서 “T”는 무엇을 의미합니까?

저는 VB 배경 지식이 있으며 새 작업을 위해 C #으로 변환 중입니다. 나는 또한 일반적으로 .NET에서 더 나아지기 위해 노력하고 있습니다. 사람들이 게시하는 샘플에서 “T”라는 키워드가 많이 사용되는 것을 보았습니다. C #에서 “T”는 무엇을 의미합니까? 예를 들면 :

public class SomeBase<T> where T : SomeBase<T>, new()

무엇을 T합니까? 왜 사용하고 싶습니까?



답변

일반 유형 매개 변수 의 기호입니다 . 예를 들어 다음과 같이 다른 것일 수도 있습니다.

public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()

T 만 Microsoft에서 사용하고 권장하는 기본값입니다.


답변

T는 키워드가 아니라 제네릭 유형의 자리 표시 자입니다. Microsoft의 Generics 소개 보기

동등한 VB.Net 구문은 다음과 같습니다.

Public Class SomeBase(Of T As {Class, New}))


답변

T 대신 사용되는 다른 이름의 좋은 예 would는 해시 테이블 클래스입니다.

public class Dictionary<K,V> ...

K키와 V가치를 의미하는 곳 . 나는 T유형을 의미 한다고 생각 합니다.

당신은 이것을 주위에서 보았을 것입니다. 연결할 수 있다면 상당히 도움이 될 것입니다.


답변

그것은 “일반”입니다. 사람들이 이미 언급했듯이 개념에 대한 Microsoft 설명 이 있습니다. “T”인 이유는 이 질문을 참조하십시오 .

간단히 말해 특정 유형에 특화된 클래스 / 메서드를 만들 수 있습니다. 고전적인 예는 System.Collections.Generic.List<T>클래스입니다. System.Collections.ArrayList유형의 항목 만 저장할 수 있다는 점을 제외 하면과 동일 합니다 T. 이것은 유형 안전성을 제공합니다. (우연히 또는 그렇지 않으면) 잘못된 유형의 항목을 목록에 넣을 수 없습니다. System.Collections.Generic공간이 사용할 수있는 여러 가지 다른 다른 수집 유형이 포함되어 있습니다.

어디에서 사용할 수 있는지는 당신에게 달려 있습니다. 때때로 발생하는 많은 사용 사례가 있습니다. 대부분 자체 제작 한 컬렉션 (내장 된 컬렉션으로 충분하지 않은 경우)이지만 실제로는 무엇이든 될 수 있습니다.


답변

가장 좋은 방법은 웹상의 많은 리소스 인 “Generics”에 익숙해지는 것입니다.

T는 키워드가 아니라 이름이며 내가 아는 한 실제로는 무엇이든 될 수 있지만 T는 관례입니다 (하나의 유형 만 필요한 경우, coruse)


답변

T제네릭 클래스의 형식 매개 변수의 이름입니다. “Type”을 의미하지만 “Alice”라고 부를 수도 있습니다.

제네릭을 사용하여 불필요하게 코드를 복제하지 않고도 형식이 안전한 방식으로 재사용 성을 높일 수 있습니다. 따라서, 당신은에 대한 쓰기 수업을하지 않아도 ListOfIntegers, ListOfStrings, ListOfChars, ListOfPersons등 대신 제네릭 클래스 쓸 수 List<T>및 유형의 다음 인스턴스화 객체를 List<Int32>, List<string>, List<char>List<Person>. 컴파일러가 작업을 수행합니다.


답변

그것은 “모든 클래스”를 의미합니다. “B”, “A”가 될 수 있습니다. “템플릿”때문에 T가 사용 된 것 같아요