Я сталкивающийся с примером кода в Java и это принесло мне вопрос.
Пример кода Java:
...
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"), CLibrary.class);
void printf(String format, Object... args);
}
public static void main(String[] args) throws IOException {
CLibrary.INSTANCE.printf("Hello, World\n");
}
Но в C# мы не можем записать как этот:
public interface IMyInterface {
static readonly int staticInt = 5; // compile error
static readonly SomeClass staticInstance = new SomeClass(); // compile error
}
Каково различие между этими двумя языками/платформами?
Какое разрешение на политику дизайна Java, чтобы иметь поля константы в интерфейсе или что препятствует тому, чтобы.NET имела это?