Methoden lokal einer fremden Klasse hinzufügen

19/10/2009 - 19:16 von Tobias | Report spam
Hallo allerseits,

ich meine mich zu erinnern, dass es in C# möglich ist, einer fremden Klasse
im nachhinein noch eine Methode hinzuzufügen, ohne diese ableiten zu müssen.
Falls es nicht ganz klar ist, was ich meine mein Fallbeispiel:
Ich hantiere momentan mit Linq to XML und möchte hier unter anderem prüfen
ob ein XElement-Objekt ein Attribut mit einem bestimmten Namen enthàlt.
Schön einfach wàre es nun in folgendem Stil:

XElement x = new XElement("Element", new XAttribute("attrib", "anything"));

if (x.HasAttribute("attrib"))
{
...
}

Da es aber eine Methode "HasAttribute(string)" nicht gibt, würde ich diese
gerne hinzufügen, allerdings ohne eine neue Klasse zu schreiben, die von
XElement abgeleitet wird (bzw. eben so, dass mir die
"HasAttribute(string)"-Methode bei XElement-Objekten zur verfügung steht).
Ich meine mich nàmlich daran zu erinnern, soetwas schon mal gelesen zu
haben, finde die Quelle aber nicht mehr.

Ich hoffe, mein Problem ist klar und ihr habt einen oder mehrere Tips zur
Lösung für mich.

Mit freundlichen Grüßen,
Tobias
 

Lesen sie die antworten

#1 Ulf [Kado] Kadner
19/10/2009 - 19:43 | Warnen spam
Hallo Tobias! Du schriebst:

XElement x = new XElement("Element", new XAttribute("attrib",
"anything"));

if (x.HasAttribute("attrib"))
{
...
}

Da es aber eine Methode "HasAttribute(string)" nicht gibt, würde ich
diese gerne hinzufügen



Du meinst siche die Extension-Methoden.

public static class MyExtensions
{
public static bool HasAttribute(this XElement xElement)
{
// Dein Code :-)
}
}

MfG, Ulf

Ähnliche fragen