Laden...

[gelöst] Extension Methods

Erstellt von NonSense vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.377 Views
NonSense Themenstarter:in
73 Beiträge seit 2006
vor 16 Jahren
[gelöst] Extension Methods

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

A
28 Beiträge seit 2006
vor 16 Jahren

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

F
722 Beiträge seit 2005
vor 16 Jahren

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ß

NonSense Themenstarter:in
73 Beiträge seit 2006
vor 16 Jahren

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!

5.742 Beiträge seit 2007
vor 16 Jahren

Darf ich dann mal ganz dumm fragen, was eigentlich "Extension Methods" sind?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo winSharp93,

ja, google, ggf auch wikipedia. 🙂 So wie bei allen Stichworten, die man nicht kennt. 🙂

herbivore

2.921 Beiträge seit 2005
vor 16 Jahren

@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.