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#应用程序?
.NET SDK包括了C#命令行编译器(csc.exe),下一个版本的Visual Studio
(Visual Studio 7 or Visual Studio.NET)会包含对C#开发的完整支持。
3.
C#可以取代Java?
C#非常像Java语言——这两种语言的核心和C++相比都有相似的优缺点。例如,两个语言都有垃圾回收,但是两个语言都没有模板(template)。Microsoft已经中止了Visual
J++产品,因此很难不认为Microsoft在使用C#来替代Java。
4. 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应用程序的最好选择。
8.
C#是面向对象的吗?
是的,C#像Java和C++一样,是一个面向对象的语言。
9.
C#有自己的类库吗?
不,就像所有的.NET语言(VB.Net,JScript .Net...)一样,C#访问.NET类库,C#没有自己的类库。
浙公网安备 33010602011771号