大家可以参考:[url=http://www.bdqn1.cn]网络工程[/url]


随着网络时代的发展,microsoft正在紧锣密鼓地计划推出visual studio 6.0的下一代产品——visual studio.net。针对这个软件包大家谈论最多的除了.net外,就要数它的另外一个利器c#。由于不准备在visual studio.net中包括visual j++,c#应该算是微软针对java的相应产品。那么,什么是c#?它和c、c++究竟有什么不同?在此,我们归纳了一些关于c#常见的问题及解答,旨在帮助不了解它的读者对它有个初步的认识。由于c#更多地类似c++,所以在此主要和c++做一对比。 
概述

1. 什么是c#? 
c#是microsoft公司设计的一种编程语言。它松散地基于c/c++,并且有很多方面和java类似。microsoft是这样描述c#的:“c#是从c和c++派生来的一种简单、现代、面向对象和类型安全的编程语言。c#(读做‘csharp’)主要是从c/c++编程语言家族移植过来的,c和c++的程序员会马上熟悉它。c#试图结合visual basic的快速开发能力和c++的强大灵活的能力。” 
2. 什么时候c#发布? 
没有准确的时间,但是希望在2001年下半年。  
3. 如何开发c#应用程序? 
.net sdk包括了c#命令行编译器(csc.exe),下一个版本的visual studio (visual studio 7 or visual studio.net)会包含对c#开发的完整支持。  
4. 我从哪里可以下载.net sdk & visual studio 7? 
你可以在http: //msdn.microsoft.com/net下载sdk的beta 2版本。如果你是一个msdn universal的定户,你可以下载visual studio 7 beta 2。  
5. c#可以取代java? 
c#非常像java语言——这两种语言的核心和c++相比都有相似的优缺点。例如,两个语言都有垃圾回收,但是两个语言都没有模板(template)。microsoft已经中止了visual j++产品,因此很难不认为microsoft在使用c#来替代java。  
6. c#可以取代 c++? 
显然是不,但是我们又很难说c++是新的.net平台上编写代码的最佳选择。为了使.net的运行层能完全发挥作用,它要求编程语言遵循某些特定的规则——其中之一就是所有的语言类型必须遵守通用类型系统(common type system,cts)。不幸的是,许多c++特性不能被cts支持。例如,模板和类的多重继承。 
microsoft对这个问题的答案是给c++提供可管理的扩展(managed extensions,me), 这可以使c++遵守cts。通过添加新的关键字来标记c++类有cts的属性(例如.-gc表示垃圾回收)。但是在创建新的工程时很难讲为什么me c++会比c#更合适。就特征(feature)而言它们很相似,但与c++不同的是c#从一开始就以.net为环境设计的。me c++存在的理由好像是将c++代码移植(port)为.net环境下的代码。 
因此,这个问题的答案,很可能是c++作为一个.net环境之外的语言将依然保留它的重要性;而通过me将现存的c++代码移植为适合.net环境;但是很可能c#将是c++开发者开发新的.net应用程序的最好选择。