Ich habe ein Problem mit C# 3.0 und dem Visual C# Express:
Ich wollte meinem Professor die Vorzüge von C# 3.0 zeigen, da er sich noch nicht mit dieser Materie befasst hat.
Die Syntax einer Extension Method sieht glaube ich so aus:
static void Test(this int arg)
{
//Verarbeiten
}
doch wenn ich diesen code kompiliern versuche kommt folgende Fehlermeldung:
Extension methods must be defined in a non generic static class
Da ich im W3 nur wenig darüber finde frage ich hier:
was mache ich falsch?
mfg
ich habe zwar 0 ahnung von "Extension Method", bzw. kenne es vl unter einem anderen namen...
aber "Extension methods must be defined in a non generic static class"
heist eig. nur das du das static weggeben sollst 😉
also:
void Test(this int arg)
{
//Verarbeiten
}
ich hoffe es hilft, aber es ist hald nur fehlermeldungs-interpretierung
MFG Thomas
hallo anwesend,
heist eig. nur das du das static weggeben sollst Augenzwinkern
nein, das heisst, dass extension methods in einer statischen, aber nicht-generischen klasse implementiert werden müssen.
hallo NonSense,
deshalb vermute ich mal, dass deine klasse nicht als static deklariert worden ist, sondern nur die methode. beides muss aber der fall sein.
gruß
Original von feadur
deshalb vermute ich mal, dass deine klasse nicht als static deklariert worden ist, sondern nur die methode. beides muss aber der fall sein.
danke das war der fehler!
Darf ich dann mal ganz dumm fragen, was eigentlich "Extension Methods" sind?
Hallo winSharp93,
ja, google, ggf auch wikipedia. 🙂 So wie bei allen Stichworten, die man nicht kennt. 🙂
herbivore
@WinSharp 93:
Es können neue Methoden zu existierenden Klassen, die z.B. sealed sind hinzugefügt werden (String-Klasse):
Hier eine genauere Beschreibung (Englisch):
http://www.interact-sw.co.uk/iangblog/2005/09/26/extensionmethods
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.