JVM требуется для запуска приложения Java.Что такое эквивалентная JVM в C#?
Я хотел знать, есть ли эквивалент в C#?
Если да, то что это такое?
JVM требуется для запуска приложения Java.Что такое эквивалентная JVM в C#?
Я хотел знать, есть ли эквивалент в C#?
Если да, то что это такое?
Common Language Runtime или CLR. Это среда выполнения, которая поддерживает не только C#, но и другие языки .NET, такие как Visual Basic.NET. Как правило, каждый язык предоставляет разработчикам подмножество функций, доступных в CLR (например, перегрузка метода исключительно с помощью типа возврата обычно не поддерживается в C#, но поддерживается CLR).
Так же, как Java компилируется в байт-код, C# и другие языки .NET скомпилируются на Microsoft Intermediate Language (MSIL) - единственный язык, который предоставляет полный набор функций CLR.
Конечно, C# defined purely as a language. Нет причин, по которым не может быть , сделанный для работы в других режимах работы, или даже в интерпретируемом режиме. Но «эквивалент» «JVM» (подразумевающий значение по умолчанию) - это CLR.
Это неправда. Вы не нуждаетесь в CLR для запуска кода C#, * будет выполняться любая * CLI-совместимая среда выполнения. Кроме того, не все реализации C#, скомпилированные для MSIL, на самом деле я считаю, что большинство компилируется для CIL, а некоторые - для собственного кода. На самом деле, не все реализации C# компилируются * вообще *, я считаю, что есть хотя бы один интерпретатор. –
Нет, мой ответ верен, другой - нет. Это стандартная среда выполнения для C#, поскольку JVM для Java. Я на самом деле не сказал, что вы должны иметь CLR для запуска кода C# - это не вопрос. –
+1 Ваш комментарий, кстати, конечно же совершенно правильный, кроме этого ... –
Чтобы запустить приложения C#, для выполнения приложений C# вам необходимо иметь среду выполнения Common Language (CLR).
Как это сформулировано, это не * строго * верно - см. Комментарий Йорга к моему ответу и мое редактирование. –
Существует нет .NET, эквивалентного JVM, так как .NET не запускается внутри виртуализованной изолированной среды, такой как Java.
Java: Source> Java Bytecode> Intepreted by JVM, скомпилированный для конкретной платформы.
. NET: Source> MSIL> Скомпилирован в собственный код при первом запуске сборки MSIL.
Таким образом, .NET-код может быть скомпилирован в MSIL, перенесен в другую архитектуру компьютера, и пока что-то (например, Mono) может читать MSIL и компилировать его в машинный код, он будет работать. С Java код всегда будет работать в изолированной среде внутри JVM.
Java и .NET имеют схожие архитектуры, но они также очень разные в других отношениях. В этом случае Java учитывает зависимость платформы, определяя единую универсальную виртуальную платформу, на которой работает весь Java-код, тогда как .NET вместо этого определяет свой язык и библиотеки как независимые от платформы.
С Java только люди, которые могут на законных основаниях предлагать JVM на определенной платформе, это Oracle/Sun/Java. С .NET любой может решить реализовать версию CLR по частям или в совокупности на данной платформе.
Почему вы, люди, недооцениваете википедию, кстати? –