Mi chiedevo se quanto segue è possibile. Crea una classe che accetta un tipo anonimo (string, int, decimal, customObject, ecc.), Quindi applica metodi di overload che eseguono operazioni diverse in base al tipo. EsempioSovraccarico del metodo con i tipi C#
class TestClass<T>
{
public void GetName<string>()
{
//do work knowing that the type is a string
}
public string GetName<int>()
{
//do work knowing that the type is an int
}
public string GetName<int>(int addNumber)
{
//do work knowing that the type is an int (overloaded)
}
public string GetName<DateTime>()
{
//do work knowing that the type is a DateTime
}
public string GetName<customObject>()
{
//do work knowing that the type is a customObject type
}
}
Così ora ho potuto chiamare il metodo GetName, e perché ho già passato nel tipo quando ho inizializzato l'oggetto, il metodo corretto viene trovato e giustiziato.
TestClass foo = new TestClass<int>();
//executes the second method because that's the only one with a "int" type
foo.GetName();
È possibile o sto solo sognando?
metodi
+1 Generics! = Modelli – user7116