Ich habe gerade Generics in Dotnet gestartet. Ich habe versucht, über generische Klassen und generische Methode zu lernen, wenn ich verwirrt wurde. Darunter füge ich einen Code ein.Generisches Klassentypargument nicht klar?
class Program
{
static void Main(string[] args)
{
Helper<int> helper = new Helper<int>();
helper.helperMethod<string>("hello Ram !");
Console.Read();
}
}
public class Helper<T>
{
public void helperMethod<T>(T input)
{
Console.WriteLine(input);
}
}
Wenn eine Instanz der Klasse zu schaffen, wird in der Typargument Helper-Klasse verwendet.
Helper<int> helper = new Helper<int>();
was ist der Zweck der „int“, oder jede andere Art Argument in der Klasse zu verwenden, wenn ich selbst eine generische Methode erstellen können. Und wenn beim Erstellen einer generischen Klasse ein Argument type verwendet wird, warum wird im Argument type ein anderer Datentyp verwendet als im Vergleich zur generischen Methode?
Normalerweise würden Sie nicht wie in diesem Fall ein separates generisches Argument für 'helperMethod' deklarieren. Und das macht es verwirrender, weil Sie dann den gleichen * Namen * für das Argument type in dieser Methode verwendet haben, wie Sie es für ein Argument vom Typ class haben. –
In Ihrem Beispiel gibt es keinen Sinn, da das Argument type für die generische Klasse nirgends verwendet wird. Daher können Sie es entfernen. –