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
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
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
Hallo,
sorry, aber wo finde ich System.Core?
Vielen Dank
Christoph
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
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.