C#是一种面向对象的软件开发语言。它出现时间较晚,拥有其它语言的优点,并且是一种全新的软件开发语言。
.NET是Microsoft 推出的一种软件技术规范,它的出现实现我们语言之间的互操作性。
.NET体系结构是通过如下方法实现了语言互操作性:
通过.NET Framework 的类库集,对各种语言代码进行编译成为.NET的MSIL(中间代码,是.NET所能识别的代码。),在.NET中通过CLR(公共语言运行时)来对这个中间代码进行管理,然后再通过.NET的JIT(实时编译)将MSIL编译成我们的目标操作系统和计算机体系的本机代码。
在.NET Framework中主要包括.NET Framework类库(即FCL)和公共语言运行时(CLR),CLR又包括了公共类型系统(CTS)和通用语言规范(CLS)。CTS定义声明、定义和管理所有类型所遵循的规则,而无需考虑源语言 。CLS是所有针对 .NET的编译器都必须支持的一组最低标准,以确保语言的互操作性。
C#是针对.NET技术规范而开发出来的,所以C#程序的运行是需要.NET Framework(类库)来支持的。
C#与JAVA 的比较:
1. 在开发效果和执和效果上C#明显优于JAVA,而在分健壮成度来讲JAVA要明显优于C#。
2. C#的原文件扩展名为.cs,JAVA中的原文件扩展名为.java。
3. C#中用csc.exe来编译原文件,而JAVA中用javac.exe来编译原文件。
4. C#中的命名空间,也相当于JAVA中的包。C#中的命名空间是用using来导入,并
且只能到包的级别(如:using System;),而JAVA中包用import来导入并可以到类的级别(如:import javax.swing.JFrame)。
5. C#中命名空间的创建为 namespace 命名空间名称{…},类是写在命名空间的一对
大括号内的,而JAVA中的包创建为package 包名;,类是和包分开写的。
6. C#中也同样是区分大小写的,C#中的程序入口即Main()方法M为大写,其中可要参数也可不要,若有参数时,此参数的数组符号必须在参数名之前,string的s为小写。返回类型可为void 也可为int.
如:
public static void Main(){}
public static int Main(){}
public static void Main(string [] args){}
public static int Main(string [] args){}
而JAVA中的main()方法m为小写,其中必须有参数,并且格式为:
public static void main(String [] args){},数组符号可前可后。
7. C#中的输出语句为:
Console.WriteLine();
而JAVA 中的输出语句为:System.out.println();