Genel bir yazdırma işlevine sahip olmak istiyorum ... PrintGeneric (T) ... aşağıdaki durumda ne eksik? @Ash Burlaczenko sen reallllly bu isterseniz, bir anahtar kelimeden sonra bir değişken adı olamaz dediği gibiC#: Bir Genel Nesneyi Geçirme
Her zaman olduğu gibi sizin yardım/fikir takdir...
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' değişken adı olamaz. Gerçek kodunuzu gösterebilir misiniz. –
@AshBurlaczenko Doğru değil. "var", C# 3.0'da eklenen bir bağlamsal anahtar kelimedir. Bunu bir tanımlayıcı adı olarak kullanabilirsiniz. Benzer şekilde, çoğu bağlamdaki tanımlayıcı adları olarak "getiri", "select", "from" vb. Kullanabilirsiniz. –
aslında "var" sadece Console.WriteLine kullanmadan işe yaramadı ... ama bu bir anahtar kelimeyi tanımlayıcı adı olarak kullanmak benim için kötüydü ... – user1229895