patterncsharpCritical
Can I add extension methods to an existing static class?
Viewed 0 times
staticextensionexistingclassmethodsaddcan
Problem
I'm a fan of extension methods in C#, but haven't had any success adding an extension method to a static class, such as
For example, if I want to add an extension to
I tried this by adding a local, public static method, with
This didn't add a '
Console.For example, if I want to add an extension to
Console, called 'WriteBlueLine', so that I can go:Console.WriteBlueLine("This text is blue");I tried this by adding a local, public static method, with
Console as a 'this' parameter... but no dice!public static class Helpers {
public static void WriteBlueLine(this Console c, string text)
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine(text);
Console.ResetColor();
}
}This didn't add a '
WriteBlueLine' method to Console... am I doing it wrong? Or asking for the impossible?Solution
No. Extension methods require an instance variable (value) for an object. You can however, write a static wrapper around the
ConfigurationManager interface. If you implement the wrapper, you don't need an extension method since you can just add the method directly.public static class ConfigurationManagerWrapper
{
public static ConfigurationSection GetSection( string name )
{
return ConfigurationManager.GetSection( name );
}
.....
public static ConfigurationSection GetWidgetSection()
{
return GetSection( "widgets" );
}
}Code Snippets
public static class ConfigurationManagerWrapper
{
public static ConfigurationSection GetSection( string name )
{
return ConfigurationManager.GetSection( name );
}
.....
public static ConfigurationSection GetWidgetSection()
{
return GetSection( "widgets" );
}
}Context
Stack Overflow Q#249222, score: 339
Revisions (0)
No revisions yet.