一般的な印刷機能を使用したい... 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