Si supponga di avere una classe che ha metodi che utilizzano T. E si hanno anche metodi standard con lo stesso nome.Firma del metodo generico e firma standard identica
Cosa succede se T è dello stesso tipo del metodo standard? Il metodo standard è chiamato.
C'è un modo per costringerlo a chiamare comunque il metodo T?
utilizzando Sistema;
namespace ConsoleApplication3
{
class Program
{
static void Main()
{
Generics<Int32> anInt = new Generics<Int32>(4);
Generics<String> aString = new Generics<String>("test");
}
}
public class Generics<T>
{
public T Member;
public String ErrorMessage;
public Generics(T member)
{
this.Member = member;
}
public Generics(String errorMessage)
{
this.ErrorMessage = errorMessage;
}
}
}
Avete controllato [questo] (http://blogs.msdn.com/b/jaredpar/archive/2008/04/14/gotcha-generic-overload-resolution-whe n-called-genericical.aspx) fuori? – sq33G
Se sai che esiste già un metodo con lo stesso nome, dovresti rinominare il tuo metodo, immagina un altro programmatore che erediti il tuo codice. – Sayse
Grazie, sq33G, ora capisco come aggirarlo. Nel mio caso sono andato un po 'diversamente. Sono derivato da Generics e ho scritto costruttori che lo gestiscono correttamente. –