Richard Deeming
Другой взгляд на это:
Если интерфейс мог есть статический метод:
interface IFoo
{
static void Bar();
}
class Foo1 : IFoo
{
public static void Bar() { ... }
}
class Foo2 : IFoo
{
public static void Bar() { ... }
}
и вы вызвали его:
IFoo.Bar();
не было бы никакой возможности для известный
который реализация вы бы в конечном итоге позвонили. Что бы позвонить
Foo1.Bar
или
Foo2.Bar
?
Вы можете решить, что хотите, чтобы он позвонил
оба реализации. Который
вероятно работайте, пока не введете возвращаемые значения, или
ref
/
out
параметры:
interface IFoo
{
static int Bar();
}
class Foo1 : IFoo
{
public static int Bar() { return 42; }
}
class Foo2 : IFoo
{
public static int Bar() { return 84; }
}
int x = IFoo.Bar(); // What is the value of x?
Интерфейс-это контракт на то, что вы можете сделать с помощью
пример один класс. Статический интерфейс или статические члены интерфейса на самом деле не имеют никакого логического смысла.