Forums Neueste Beiträge
 

Statische Klasse um eine Exension Method erweitern

01/03/2008 - 12:48 von Sebastian Schwaiger | Report spam
Grüß euch. Ich hàtte gerne folgende Funktion implementiert:

public static void WriteColoredLine(
this Console console, string strMessage, ConsoleColor color)
{
ConsoleColor saveColor = Console.ForegroundColor;
Console.ForegroundColor = color;
Console.WriteLine(strMessage);
Console.ForegroundColor = saveColor;
}

Dann kommt
Error 1 'System.Console': static types cannot be used as parameters
D:\Programmieren\TrainControlFramework\Server\Program.cs 11 22 Server

Tjy, gibt's da was das ich noch nicht weiß über dieses neue Feature?
Also der Fehler klingt logisch, aber ich würds halt gern machen ;-)

Lg Wasti
 

Lesen sie die antworten

#1 Frank Dzaebel
01/03/2008 - 13:42 | Warnen spam
Hallo Sebastian,

public static void WriteColoredLine(
this Console console, string strMessage, ConsoleColor color)
Dann kommt
Error 1 'System.Console': static types cannot be used as parameters
D:\Programmieren\TrainControlFramework\Server\Program.cs 11 22 Server



Statische Typen können nicht als Parameter verwendet werden.
Ein statischer Typ ist als Parameter nicht sinnvoll. Da keine
Instanzen statischer Typen generiert werden können,
kann niemals eine Instanz als Parameter übergeben werden.

Im Allgemeinen wird empfohlen, Erweiterungsmethoden
sparsam und nur wenn unbedingt notwendig zu implementieren.
Du làufst z.B. auch Gefahr, dass eine Änderung an der
Implementierung des Typs Console eine Unterbrechung
Deiner Erweiterungsmethode bewirkt.

[Erweiterungsmethoden (C#-Programmierhandbuch)]
http://msdn2.microsoft.com/de-de/li...83977.aspx

[Compilerfehler CS0721]
http://msdn2.microsoft.com/de-de/library/td8fh082(VS.80).aspx

Ggf. über eine "class Consol" machen,
dann erscheinen die in der Intellisense ja
übereinander - evtl. als pragmatischer Weg.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen