开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2022.11.29广东
C#是由AndersHejlsberg和他的团队在.Net框架开发期间开发的。
C#是专为公共语言基础结构(CLI)设计的。CLI由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。下面列出了C#成为一种广泛应用的专业语言的原因:
虽然C#的构想十分接近于传统高级语言C和C++,是一门面向对象的编程语言,但是它与Java非常相似,有许多强大的编程功能,因此得到广大程序员的青睐。下面列出C#一些重要的功能:
在这里,主要讨论创建C#编程所需的工具。前面已经提到C#是.Net框架的一部分,且用于编写.Net应用程序。因此,在讨论运行C#程序的可用工具之前,让我们先了解一下C#与.Net框架之间的关系。
.NET是微软公司下的一个开发平台,.NET核心就是.NETFramwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb.net等等。java和.NET不同的一点是,java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和iOS苹果系统。.Net框架是一个创新的平台,能帮您编写出下面类型的应用程序:
.Net框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、VisualBasic、Jscript、COBOL等等。所有这些语言可以访问框架,彼此之间也可以互相交互。.Net框架由一个巨大的代码库组成,用于C#等客户端语言。下面列出一些.Net框架的组件:
如需了解每个组件的详细信息,请参阅微软(Microsoft)的文档。
C#是一个.NET平台下的一个程序设计语言,仅仅是一个语言。是运行在.netCLR上的,用于创建应用程序的高级语言。程序设计语言是为了方便开发人员和计算机沟通的工具。
微软(Microsoft)提供了下列用于C#编程的开发工具:
后面两个是免费使用的,可从微软官方网址下载。使用这些工具,您可以编写各种C#程序,从简单的命令行应用程序到更复杂的应用程序。您也可以使用基本的文本编辑器(比如Notepad)编写C#源代码文件,并使用命令行编译器(.NET框架的一部分)编译代码为组件。VisualC#Express和VisualWebDeveloperExpress版本是VisualStudio的定制版本,且具有相同的外观和感观。它们保留VisualStudio的大部分功能。
虽然.NET框架是运行在Windows操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono是.NET框架的一个开源版本,它包含了一个C#编译器,且可运行于多种操作系统上,比如各种版本的Linux和MacOS。如需了解更多详情,请访问GoMono。Mono的目的不仅仅是跨平台地运行微软.NET应用程序,而且也为Linux开发者提供了更好的开发工具。Mono可运行在多种操作系统上,包括Android、BSD、iOS、Linux、OSX、Windows、Solaris和UNIX。
一个C#程序主要包括以下部分:
C#是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的class中。例如,以Rectangle(矩形)对象为例。它具有length和width属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。让我们来看看一个Rectangle(矩形)类的实现,并借此讨论C#的基本语法:
注释是用于解释代码。编译器会忽略注释的条目。在C#程序中,多行注释以/*开始,并以字符*/终止,如下所示:
在上面的程序中,类ExecuteRectangle是一个包含Main()方法和实例化Rectangle类的类。
关键字是C#编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上@字符作为前缀。在C#中,有些关键字在代码的上下文中有特殊的意义,如get和set,这些被称为上下文关键字(contextualkeywords)。下表列出了C#中的保留关键字(ReservedKeywords)和上下文关键字(ContextualKeywords):
换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的引用类型有:object、dynamic和string。
就像仓库,仓库里有货架,货架上有编号:A1,A2,A3…,这些编号就可以看做是引用类型,现在来了一批货,有“土豆,黄瓜,西红柿”,这些就是值类型,如果你想让A1=土豆,那么就要把土豆搬到A1里面去,这就叫装箱,装箱需要耗费人力和工时(也就是耗费CPU和内存),同理拆箱就要把对应编号的货物搬出来,也是需要耗费人力和工时。
对象(Object)类型是C#通用类型系统(CommonTypeSystem-CTS)中所有数据类型的终极基类。Object是System.Object类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱。
字符串(String)类型允许您给变量分配任何字符串值。字符串(String)类型是System.String类的别名。它是从对象(Object)类型派生的。字符串(String)类型的值可以通过两种形式进行分配:引号和@引号。例如:
下面的实例显示了一个隐式的类型转换:
C#中变量定义的语法:
C#中的两种表达式:
变量是lvalue的,所以可以出现在赋值语句的左边。数值是rvalue的,因此不能被赋值,不能出现在赋值语句的左边。下面是一个有效的语句:
整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x或0X表示十六进制,0表示八进制,没有前缀则表示十进制。整数常量也可以有后缀,可以是U和L的组合,其中,U和L分别表示unsigned和long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。这里有一些整数常量的实例: