C#关键字详解(一)

为了更好的理解和学习C#,本人就其中至关重要的关键字做简单整理:

概念:

就关键字的概念,我想MSDN的解释已经足以使大多数人明白。关键字,是对编译器有特殊意义的预定义保留标示符,它们不能在程序中用作标示符。(在关键字前加@前缀除外)

PS:这些预定义保留标示符,通常在编译器中有着特殊的作用,为了便于书写程序,我们保留这些有特殊含义的标示符,并把它们统一称为关键字。

统计:

MSDN中列举的关键字共有90个关键字,包含77个被保留的关键字和13个上下文关键字。在此只罗列总结77个被保留关键字,上下文关键字暂不做总结。

 

简单分类:

  研究整理和学习关键字,我们就必须先对C#语言有所了解。C#语言是一种面向对象的编程语言,其中包含字段,结构,方法,类等各种各样的数据。而关键字,就是用于连接和处理这些数据的,具有特殊功能的标示符。(关于标示符,此处不作详解)

因此,在这里我将根据这些关键字的用途和使用特点将它们分成如下几类。(“+”表示其他用途尚不考虑或待添加)

l      一般用于定义声明对数据存储、分类的关键字

l      一般用于定义声明包含多种数据类型的范围

l      一般用于数据流程控制的关键字

l      一般用于处理异常的关键字

l      一般用于对数据类型进行修饰的关键字(+

l      作为文字运算符及其关联的关键字

l      与参数关联的关键字

l      其他

1.定义声明对数据存储、分类的关键字

   所谓定义声明对数据的存储、分类,包括定义声明字段(常量,变量),定义声明数组,定义声明枚举等。依照数据类型的不同,开辟不同大小、类型的空间存储不同的数据。

   在该类别下,根据数据类型不同,又可将关键字分为定义引用类型和定义值类型以及对特定值的声明。

1)定义引用类型  定义声明的变量等,用于存储对数据的引用。

 string   可以定义声明一个字段、数组用来存储零或多个unicode字符组成的序列(字符串)。创建之后的字符串为只读属性,不可改变。string还可以用来定义方法的返回值类型。+

例如: 

      string a ="hello";

           string b ="h";          

           b +="ello";

           Console.WriteLine(b);

           Console.WriteLine(a == b);    //1

           Console.WriteLine((object)a == (object)b);  //2

   定义了变量a,用于存储字符串“hello”。1式输出结果为true,说明比较的为引用对象的值,2式对两个值进行装箱操作比较对象,输出结果为false,说明a,b引用的并非同一实例,也说明b经过复合赋值运算后生成的“hello”字符串为重新创建的。

 object  所有类型的基类型,可以用来定义声明任何类型的数据。可以将任何类型的值赋给object类型的变量。值类型数据还能通过(object)装箱操作被视为对象。+

例如:

       staticvoid Main(string[] args)

       {

           constdouble pi = 3.14;

           Test("张三",25,'',2.5,3.6d,2.36m,pi);

           Console.ReadKey();

       }

       staticvoid Test(paramsobject[] input)

       {

           for (int i = 0; i < input.Length; i++)

           {

               Console.Write("{0}\t",input[i]);               

           }           

       }

输出结果如下图:

  

2)定义值类型  定义声明的变量等,用于存储数据。

   根据值类型的不同分类,关键字又可分为:定义声明数值类型数据的关键字和定义声明非数值类型数据的关键字。

1))定义数值类型

   根据数值类型数据的分类,又可将关键字分为,定义声明整数类型数值的关键字和定义声明浮点类型数值的关键字以及浮点精度颇高多用于财务计算的decimal类型。

1> 定义整数类型

根据存储数据时开辟空间大小与包含的数值范围的不同,将定义声明整数类型的关键字分为如下几种。

                注释:有符号表示有负号。

       2> 定义浮点类型

   根据定义数值精度和范围的要求,将关键字分为如下两种。

类型

大致范围

 精度           大小

float

1.5 × 10-45 到 3.4 × 1038

7 位          四个字节 32位浮点值 单精度

double

5.0 × 10-324 到 1.7 × 10308

15位          八个字节 64位浮点值 双精度

3> decimal

   定义为decimal类型的数值相比浮点类型有更高的精度,开辟的空间占16个字节,一般用于财务计算。如果要将数值定义为decimal类型,要在数值后加上mM

类型

大致范围

精度

   大小

decimal

1.0 × 10-28 到 7.9 × 1028

28             十六个字节 128位浮点值

2))定义非数值类型

非数值类型的值类型数据可分为如下两种。

bool    定义声明变量等用于存储特定的booltruefalse,占1个字节大小。

Char    定义声明变量等用于存储单个unicode字符,占两个字节。

3) 定义声明枚举

枚举用来存储一组独特类型的数据,枚举数的名称必须是标示符,不能是单独的数字或者空白,默认情况下,枚举元素(枚举数的值)的基础类型为int,也可以重新设定为其他整数数值类型,枚举中的每个枚举数都能强制转换成数值。枚举数的值只能是常数,默认情况下第一个枚举数的值为1,后面每个枚举数的值依次加1。定义枚举的关键字如下。

enum   定义声明枚举。

枚举的创建一方面能使特殊类型的数据得以存储,另一方面又限定了赋值范围,通常情况下,我们把独特的,不经常改变的数据定义存储在枚举中。

例如:

 

定义了一个person类,生成两个对象,对他们的性别属性设置时,只能选择枚举中的枚举数。

3)对特定的值声明(又被称为文字关键字)

     此部分包括bool类型的两个值true,false以及表示引用为空的null值。

  true    表示bool值为true,多用于判断条件。

 false    表示bool值为false,多用于判断条件。

 null     表示定义为引用类型的变量无值。++  

++ 如上19个关键字,除了用于定义声明数据存储,分类等,有些还能应用于声明函数,方法的返回值类型,整数数值类型的关键字还能定义声明枚举的基础类型等。当然还有其他更多应用,这里就不一一列举了。++

 

2. 定义声明包含多种数据类型的范围的关键字

  所谓定义声明包含多种数据类型的范围,就是指定义命名空间,类,结构,接口等。无论是数据的存储、分类还是处理、应用,大多都发生在这些集合当中。

namespace    定义声明一个叫命名空间的范围,在该范围内的成员可以是另一个命名空间,类,接口,结构,枚举,委托,命名空间可以看做一个文件夹,相同的类名,标示符等可以在不同的命名空间内使用而不会发生混乱。

作用:

1)命名空间用来在大型代码项目中约束和控制类名称和方法名称。

2)用来将大量类封装在一起方便调用。

class     定义声明一个叫类的范围,在该范围内的成员可以是除了命名空间以外的任何类型。通常大多数对数据的操作都发生在类中,每个C#应用程序中都至少包含一个类。面向对象的类可以通过new实例化生成一个对象,有封装,继承,多态等特点。+

struct    定义声明一个叫结构的范围,通常用来封装一组变量,其内成员还可以是(有参数)构造函数,常量、字段、方法、属性、索引器、运算符、事件和嵌套类型结构可以实现接口,但它们无法继承另一个结构。因此,结构成员无法声明为 protected。

结构可以看做一个简单的类,但它与类却有很多不同。

1)结构的实例化可以不用new运算符。

2)结构是值类型,而类是引用类型。

3)结构声明的构造函数必须带参数,不能声明析构函数。

4)结构不能从另一个结构或除system.ValueType之外的类继承,不能被指定为基类。

5)结构类型永远不会是抽象的。

6)结构不能被static修饰,类可以。

7)定义一组全局变量,可写在结构中方便引用。

8)结构不需要堆分配。

interface 定义声明一个叫接口的范围,其内的成员可以是方法,属性或事件的签名。一个接口可以从一个或多个基接口继承。+   

      ++ 因为学习时间尚短,对接口,委托,事件等都只知皮毛,关于这方面的总结,将会在以后的学习中慢慢积累。  

 更多内容,请参见另一篇博客(C#关键字详解(二))

  • 17
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值