class test <T> where T : class
{
public void Write<T>()
{
Console.Write(typeof(T).FullName);
}
}
위의 클래스에서 클래스 (test<string> Test = new test<string>
)의 문자열을 전달하고 메서드에 int를 전달할 수 있습니까? 그렇다면 결과는 무엇입니까? 그렇지 않은 경우 어떤 문제가 발생합니까? 제네릭 (제 클래스에서)과 제네릭 컬렉션을 자주 사용 했음에도 불구하고 실제로 이것을 시도하지 않았습니다. 다음과 같이제네릭 클래스 및 제네릭 메서드
나는 일반적인 클래스를 참조/쓰기 방법은 다음과 같습니다
class <T> where T : class
{
public T Write()
{
Console.Write(T.ToString());
}
}
메서드를 보면 "T"는 실제로 메서드 매개 변수입니다. 클래스의 매개 변수와 이름이 같으므로 경고가 생성됩니다. 그러나 실제로는 불법이 아닙니다. (나는 당신이 제안한 것처럼 U로 이름을 바꾸는 것이 좋습니다.) –
@Scott, 나는 실제로 C#에서 경고와 경고를 비교할 것이라고 생각했습니다. 이상한 :( – JaredPar