Вы не можете получить именно то, что вы хотите; в C # все методы должны быть в классе.
В зависимости от того, что находится в вашем классе Common , вы можете найти что-то более удовлетворяющее, используя методы расширения:
namespace Blah.Controls
{
public class CommonControl { }
public static class Common
{
public static void Foo(this CommonControl cc) { }
}
public class Control1 : CommonControl
{
public void Bar()
{
this.Foo();
}
}
}
Другая вещь, которую вы могли бы рассмотреть, - это использование partial
классов, которые позволили бы вам написать простые обертки в другом месте:
namespace Blop.Controls
{
public static class Common
{
public static void Foo() { }
}
public partial class Control1
{
public void Bar()
{
Foo();
}
}
public partial class Control1
{
public void Foo()
{
Common.Foo();
}
}
}
Очевидно, что введение некоторого наследования может устранить некоторое дублирование; Я предполагаю, что вы не хотите этого делать.