小弟一直有一个疑问在心中,现在来请教一下大家:都说Java相对于C#的一个最大的不同就是Java是跨平台的,但C#为什么不说它能跨平台呢?java程序写好后编译成字节码。在不同的操作系统上只要安装Java虚拟机就可以解释执行java字节码了。这体现出了java的跨平台能力。但是CC#程序写好后,编译生成.exe文件,然后在不同操作系统上安装.netframework不也可以运行吗,这不也是跨平台吗?另外问一个其他问题,C#中的button的keypress事件是怎么回事呢?是button获得焦点之后按键盘触发的吗?

解决方案 »

  1.   

    能。
    我已经在Linux下MONO开发过一个小的TCP服务器,虽然功能不强也没经过复杂环境的考验,但用是完全没有问题的。
      

  2.   

    都说Java相对于C#的一个最大的不同就是Java是跨平台的,但C#为什么不说它能跨平台呢?java程序写好后编译成字节码。在不同的操作系统上只要安装Java虚拟机就可以解释执行java字节码了。这体现出了java的跨平台能力。但是CC#程序写好后,编译生成.exe文件,然后在不同操作系统上安装.netframework不也可以运行吗,这不也是跨平台吗? 1:你说得很对,但问题是:不是所有的平台都可以安装.NET Framwork。目前来说,官方仅支持Windows系列,而民间的MONO对.NET Framework的支持在某些方面还不尽如人意,特别是类库。另外问一个其他问题,C#中的button的keypress事件是怎么回事呢?是button获得焦点之后按键盘触发的吗? 
    2:控件的事件必须在其获得焦点后才能触发,否认是什么事件。keypress正是控件得到焦点后按下按键的事件,但请注意对于某些特殊键它可能没有响应,比如:ENTER。
      

  3.   

    java的虚拟机在包括苹果,linux uinx  windows等上运行都可以,而.net就不能在linux,uinx等上运行,只能在windows家族系统上运行因为微软要保护自己的利益,所以官方没有向其它平台上做扩展(相应的虚拟机)!
      

  4.   

    Mono是一个由Novell公司(先前是Ximian)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, Unix, Mac OS X和Solaris. 
      

  5.   

    有mono是做linux下的dotnet,但是不成熟。
      

  6.   

    sdfsdf
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  7.   

    大家试试安装2.4吧,也许原来很多不支持的功能已经支持了:
    通过mono-merge工具合并BSD# ports tree并安装mono 最新版本:mono 2.4