일반 인쇄 기능을 원합니다 ... PrintGeneric (T) ... 다음과 같은 경우에 무엇이 누락 되었습니까? @Ash Burlaczenko 당신이 reallllly이 원하는 경우, 키워드 후 변수의 이름을 못할 밝혔다으로C# : 일반 객체 전달
언제나 당신의 도움/통찰력에 감사드립니다...
public interface ITest
{}
public class MyClass1 : ITest
{
public string myvar = "hello 1";
}
public class MyClass2 : ITest
{
public string myvar = "hello 2";
}
class DoSomethingClass
{
static void Main()
{
MyClass1 test1 = new MyClass1();
MyClass2 test2 = new MyClass2();
Console.WriteLine(test1.myvar);
Console.WriteLine(test2.myvar);
Console.WriteLine(test1.GetType());
PrintGeneric(test1);
PrintGeneric<test2.GetType()>(test2);
}
// following doesn't compile
public void PrintGeneric<T>(T test)
{
Console.WriteLine("Generic : " + test.myvar);
}
}
'var' 변수 이름이 될 수 없습니다. 실제 코드를 보여줄 수 있습니까? –
@AshBurlaczenko 올바르지 않습니다. 'var'은 C# 3.0에 추가 된 문맥 키워드입니다. 식별자 이름으로 사용할 수 있습니다. 비슷하게 대부분의 문맥에서 식별자 이름으로'yield','select','from' 등을 사용할 수 있습니다. –
실제로 "var"는 Console.WriteLine ...을 사용하지 않고 작동했습니다. 그러나 이것은 식별자 이름으로 키워드를 사용하는 것이 나빴습니다 ... – user1229895