да, в ограниченном смысле.
public class DataSet : System.Data.DataSet
{
public static void SpecialMethod() { }
}
Это работает, но Консоль - нет, потому что она статическая.
public static class Console
{
public static void WriteLine(String x)
{ System.Console.WriteLine(x); }
public static void WriteBlueLine(String x)
{
System.Console.ForegroundColor = ConsoleColor.Blue;
System.Console.Write(.x);
}
}
Это работает, потому что пока оно не в том же пространстве имен. Проблема в том, что вы должны написать статический метод прокси для каждого метода, который есть в System.Console. Это не обязательно плохо, так как вы можете добавить что-то вроде этого:
public static void WriteLine(String x)
{ System.Console.WriteLine(x.Replace("Fck","****")); }
или
public static void WriteLine(String x)
{
System.Console.ForegroundColor = ConsoleColor.Blue;
System.Console.WriteLine(x);
}
Способ работает так, что вы подключаете что-то к стандартному WriteLine. Это может быть счетчик строк или фильтр плохих слов или что-то еще. Всякий раз, когда вы просто указываете Консоль в своем пространстве имен, скажем, WebProject1 и импортируете пространство имен System, WebProject1.Console будет выбираться вместо System.Console по умолчанию для этих классов в пространстве имен WebProject1. Так что этот код превратит все вызовы Console.WriteLine в синий, поскольку вы никогда не указывали System.Console.WriteLine.