Haben Sie sich jemals gefragt, wie List<T>
's myList[i]
funktioniert in C# genau wie ein Array?
Die Antwort ist in Ihrer Frage. Die von Ihnen gepostete Syntax ist ein syntaktischer Zucker, den der Compiler in Eigenschaften namens get_Item(int index)
und set_Item(int index, decimal value)
umwandelt. Es wird beispielsweise in List<T>
verwendet, um auf das in der Klasse verwendete interne Array zuzugreifen und das Element am angegebenen Index (set oder get) zurückzugeben. Diese Funktion wird genannt.
Um zu testen, dass dich selbst, versucht, eine Methode mit derselben Signatur zu erstellen:
Fehler CS0082: Typ 'MyClass' bereits behält ein Mitglied
public decimal get_Item(int i)
{
return 0;
}
Sie erhalten einen Compiler-Fehler 'get_Item' mit den gleichen Parametertypen
Wenn Ihre Klasse MathTest heißt, dann können Sie von uns auf das interne Koeffizientenarray zugreifen MathTest [i] anstelle von MathTest.Coefficients [i]. Siehe http://stackoverflow.com/questions/1307354/c-sharp-indexer-usage und http://stackoverflow.com/questions/2185071/real-world-use-cases-for-c-sharp-indexers – ManoDestra
Warum? die downvotes .. – PreqlSusSpermaOhranitel
Keine Ahnung. Ich habe dich aufgewertet. Die Frage scheint mir klar genug zu sein. Vielleicht eher schlecht erforscht, da es sich um eine grundlegende Sprachsyntaxfrage handelt, aber immer noch gültige IMO. – ManoDestra