Единственный способ заставить тип иметь статический член - наследовать от него. Все типы будут иметь статические члены, и если вам нужно переопределить их для производного типа, вы можете использовать ключевое слово «new»:
static void Main(string[] args)
{
Console.WriteLine(Base.Hello());
Console.WriteLine(Derived.Hello());
Console.Read();
/* output will be:
Hello
World
*/
}
public class Base
{
public static object Hello()
{
return "Hello";
}
}
public class Derived : Base
{
public static new object Hello()
{
return "World";
}
}
Это не совсем то же самое, что абстракция / переопределение, но с точки зрения потребителя работает аналогично.