C#中不存在VM的问题,它没有这个概念,应当说它是基于COM+的运行库支持系统。

解决方案 »

  1.   

    C#中不存在VM的问题,它没有这个概念,应当说它是基于COM+的运行库支持系统。
      

  2.   

    C#中不存在VM的问题,它没有这个概念,应当说它是基于COM+的运行库支持系统。
      

  3.   

    谢谢指正,那他如何跨平台?
    如果不是VM 的原因为何那么慢?
    其他平台回有基于COM+的运行库支持系统?
      

  4.   

    .NET平台的核心包括两方面,一方面就是著名的通用语言运行机(Common Language Runtime),虽然这个名词起得晦涩了点,不过大家可以拿它和Java的虚拟机来作比较,二者完成的任务大致相同;另一方面就是一大堆通用函数库,这些库函数可以被多种语言调用,并且通过编译都产生一种共同的中间语言(Intermediate Language),这种语言也可以拿Java的字节码来类比,虽然完成的方式有些不一样。 二者都编译成跨平台的、跨语言的代码,并且代码只能在一个受控制的环境中运行 
      
      自动回收垃圾内存,并且消除了指针(在C#中可以使用指针,不过必须注明unsafe关键字) 
      都不需要头文件,所有的代码都被“包(package)”限制在某个范围内,并且因为没有头文件,所以消除了类定义的循环依赖 
      所有的类都是从对象派生出来,并且必须使用New关键字分配内存 
      用对象加锁的方式来支持多线程 
      都具有接口(interface)的概念 
    内部类 
      继承类的时候不会以某种特定的访问权限来继承; 
      没有全局函数或者常量,一切必须属于类; 
      数组或者字符串都自带长度计算和边界检查; 
      只使用“.”操作符,没有“->”和“::”; 
      “null”、“boolean”和“bool”成为了关键字; 
      任何变量均在使用前进行初始化; 
      不能使用整数来返回到if条件语句中,必须使用布尔值; 
      “Try”模块后可以有“finally” 
      

  5.   

    请教:sophies(苏梦枕)
      ”Common Language Runtime“ 是谁家的孩子?谁实现,谁对它负责?
      他在那些平台实现?
      既然有跨平台思想,却在。NET上不支持JAVA,是否有一点鱼死网破?
      

  6.   

    Java是Sun的孩子,.net的一切自然是微软的孩子平台的话,目前还只是windows据说要推出for linux,但专家分析那是为微软可能被分裂做的准备
    (我想如果其原理如此的话,其实扩充到其它平台上当不为难——对微软来说)微软从来就不会为别人留半点退路的,当然要火拼一场
      

  7.   

    C# is not exactly executed as java on some VM. although it has intermediete language which is almost the same as the byte-code of java class.
    Ideally, the application is compiled into IL and SHIPPED in IL.Until the software it being installed, the second path compile(compile into the native code according to the machine configuaration ) is done while install. Or it just executed like java with jit.