Quiero tener una función de impresión genérica ... PrintGeneric (T) ... en el siguiente caso, ¿qué me estoy perdiendo?C#: Paso de un objeto genérico
Como siempre su ayuda/penetración se aprecia ...
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' no puede ser un nombre de variable, ya que es una palabra clave. ¿Puedes mostrar tu código actual? –
@AshBurlaczenko No es correcto. 'var' es una palabra clave contextual agregada en C# 3.0. Puede usarlo como un nombre de identificador. Del mismo modo, puede usar 'yield',' select', 'from', etc. como nombres de identificadores en la mayoría de los contextos. –
realmente "var" funcionó sin usar Console.WriteLine ... pero fue una mala idea usar una palabra clave como nombre de identificador ... – user1229895