Laden...

C# 2012 - Kann keine ExtensionMethods erstellen

Erstellt von SlyFox vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.296 Views
Thema geschlossen
S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 10 Jahren
C# 2012 - Kann keine ExtensionMethods erstellen

Hallo,

ich möchte gerne eine Erweiterungsmethode programmieren, bekomme in C# 2012 Prof. immer diese Fehlermeldung angezeigt:

Fehlermeldung:
Es kann keine neue Erweiterungsmethode definiert werden, weil der für den Compiler erforderliche Typ 'System.Runtime.CompilerServices.ExtensionAttribute' nicht gefunden werden kann. Fehlt ein Verweis?

Hier der Quellcode:

  public static class RichtextBoxExtensions
  {
    public static void AppendText(this System.Windows.Forms.RichTextBox rtb, string text, System.Drawing.Color color)
    {
      rtb.AppendText("asdf");
    }
  }

In C# 2008 Express funktioniert das wunderbar. Kann es daran liegen, dass ich mehrere Versionen von C# auf dem Computer installiert habe? C# 2012 ist frisch installiert und ich habe an der Konfiguration noch nichts geändert, ist alles noch Default.

Vielen Dank für eure Hilfe.

Christoph

849 Beiträge seit 2006
vor 10 Jahren

Hallo,

ich vermute Du versuchst das mit .net < Version 3. Erweiterungsmethoden sind erst ab c#3 aka .net 3 verfügbar. Wenn Du trotzdem gegen 2.0 kompilieren musst kannst Du Dir diesen Typen auch einfach selbst anlegen. Das funktioniert dann auch.

Der Typ ist in der System.Core. Dieser Verweis sollte natürlich da sein.

G

Jan

S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 10 Jahren

Hallo unconnected,

leider ist es .NET Framework 4.5. 😦

Hat sonst noch jemand eine Idee, woran es liegen kann? Muss ich einen Verweis oder ein Using verwenden?

//Edit: Dass mit dem System.Core hatte ich überlesen, werde ich nachher mal ausprobieren.

Viele Grüße aus Köln

Christoph

S
SlyFox Themenstarter:in
231 Beiträge seit 2007
vor 10 Jahren

Hallo,

sorry, aber wo finde ich System.Core?

Vielen Dank

Christoph

849 Beiträge seit 2006
vor 10 Jahren

Also normalerweise ist die referenz in jedem .net project als standart mit dabei.
Bei mir liegt sie da: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Core.dll

Hinweis von herbivore vor 10 Jahren

Das Referenzieren von Assemblies fällt unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1. Auch die Eingangsfrage war wegen [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen) schon grenzwertig.

Thema geschlossen