C# 基本概念6

命名空间

C# 语言的程序是利用命名空间(namespace )组织起来的,
它为C# 语言的类型系统提供唯一的完全限定名称。命名
空间既用作程序的“内部”组织系统,也用作“外部”
组织系统(相对于其他程序而言的,一种用来公开程序
本身所拥有元素的方法)。


命名空间概述

命名空间(namespace )是一种用于组织C# 程序代码中的不
同类型的方式,并使类型具有唯一的完全限定名称。在
概念上,命名空间和计算机文件系统中的文件夹比较类
似。命名空间具有以下4 个用途。
  组织大型代码项目。
  使用. 运算符将它们分隔。
 using 指令不必为每个类指定命名空间的名称。
 global 命名空间是.NET Framework 应用程序的“根”命
名空间,global::System 始终引用.NET Framework 中的
System 命名空间。


声明命名空间

namespace 关键字用于声明一个范围,并称该范围为命名空间。通
过命名空间可以组织程序的源代码,并为源代码提供一个全局
唯一类型访问的方法。声明命名空间的具体语法如下。
namespace qualified-identifier
{
body
[;]
}
qualified-identifier 表示命名空间的名称,该名称必须唯一,body
表示该命名空间的内容主体(该部分是不可缺少的),; (分号
)是一个可选项。一旦声明了一个命名空间之后,该命名空间
中的主体源代码将在该命名空间中进行编译。


 . (点号)运算符

. (点号)运算符用于成员访问。在命名空间中,. (点号)
运算符指定命名空间的成员。 【 示例7-7 】 使用. (点号)
运算符访问了System 命名空间下的Int32 类型,并声明了
该类型的i 变量。
System.Int32 i;


:: (双冒号)运算符

:: (双冒号)运算符用于在指定命名空间中查找标识符,它
通常放置在两个标识符之间。 【 示例7-10 】 使用:: (双冒
号)运算符在global 命名空间中查找System.Console 类,
并调用WriteLine() 方法在控制台上显示“This is a
string.” 字符串。
global::System.Console.WriteLine("This is a string.");
注意:global 表示在全局命名空间中的查找,而不是在个别
特定的命名空间中查找。


using 指令

using 关键字存在两种常用用法:作为指令和作为语句。当
using 关键字作为指令时,它用于为命名空间或类型创建
别名或导入其他命名空间中定义的类型。当using 关键字
作为语句时,它用于定义一个范围,并在此范围的末尾
将释放对象。本节介绍using 关键字作为指令的详细用法



创建命名空间或类型别名

using 指令可以为一个命名空间或类型创建特定的、简单的
别名,使得通过该别名也可以引用该命名空间或类型。
具体语法如下:
using old-identifier = new- identifier;
old-identifier 表示命名空间或类型的旧名称,new- identifier
表示该命名空间或类型的新名称,即别名。


导入命名空间

using 指令还可以将一个命名空间中所包含的类型导入到指
定的程序体或文件中,从而该程序体或文件中的代码可
以直接访问该命名空间中的类型,而不需要加上类型的
完全限定符(如命名空间的名称)。具体语法如下:
using identifier;
identifier 表示被导入的命名空间。


.NET Framework 常用命名空间

Microsoft .NET Framework 类库(Class Library )是一个综
合性的面向对象的可重用类型集合,由.NET Framework
SDK 中的类、接口、值类型等组成的库。.NET
Framework 类库是创建.NET Framework 应用程序、组件
和控件的基础,并为开发人员提供了大量的命名空间、
类等基础技术。


C# 是面向对象的编程语言,它使用类和结构来实现类型(
如Windows 窗体、ASP.NET Web 窗体、用户界面控件等
)。典型的C# 应用程序由程序员定义的类和.NET
Framework 的类组成。
  类概述;
  类数据成员;
  类函数成员
  创建派生类;
  展示类的多态性。


类概述

类(class )是一种数据结构,它可以包含数据成员(常量和
字段)、函数成员(方法、属性、事件、索引器、运算
符、实例构造函数、静态构造函数和析构函数)以及嵌
套类型。类类型支持继承,继承是一种机制,它使派生
类可以对基类进行扩展和专用化。


类声明

声明类需要使用class 关键字,语法如下。
class-modifiers class identifier class-base class-body ;
class-modifiers 表示类修饰符(可选),identifier 表示类的
名称,class-base 表示类的基类或接口等(可选),class-
body 表示类体,; (分号)是可选的。


类修饰符

类修饰符放在class 关键字的前面,它包括new 、public 、
protected 、internal 、private 、abstract 和sealed 共7 个关键
字。其中,public 、protected 、internal 和private 修饰符控
制类的可访问性。它们的意义具体说明如下。
 public 修饰符表示该类是公开的,访问不受限制。
 protected 修饰符表示该类只能是本身或其派生的类访问。
 internal 修饰符表示该类只能是在当前应用程序中访问。
  private 修饰符表示该类只能是本身访问。


类继承

类类型支持继承(inherit ),继承是一种机制,它使派生类
可以对基类进行扩展和专用化。在类声明语法中,class-
base 表示类的基类或接口等(可选),即一个类可以从另
外一个类继承而来。


类、对象和实例化

类是一种数据结构,它为动态创建类的实例提供了定义。类
的实例又称为对象。实例化是一种操作,它可以为类的
实例分配内存。


类成员

类可以包含多种成员,如常量、字段、方法等,具体说明如下。
(1 )常量 (2 )字段
(3 )方法 (4 )属性
(5 )事件 (6 )索引器
(7 )运算符 (8 )实例构造函数
(9 )析构函数 (10 )静态构造函数
(11 )类型
上述成员除了类型之外,可以分类两大类:数据成员和函数成员
。其中,数据成员包括常量和字段;函数成员包括方法、属性
、事件、索引器、运算符、实例构造函数、析构函数和该类的
静态构造函数。本节将详细介绍上述类的成员。


常量

常量(constant )用来表示常数值,它的值在编译时计算。
常量的类型必须为sbyte 、byte 、short 、ushort 、int 、uint
、long 、ulong 、char 、float 、double 、decimal 、bool 、
string 、枚举类型或引用类型。
在声明常量时,需要使用const 关键字。


字段

字段(field )是类中最为常见的数据成员,它为类中的变量
。如果在同一个语句中同时声明多个字段,那么字段之
间需要使用, (逗号)分隔。根据字段的修饰方式,可以
把字段分为以下4 种。
  静态字段,使用static 修饰,对应于静态变量。
  实例字段,不使用static 修饰,对应于实例变量。
  只读字段,使用readonly 修饰。
  易失字段,使用volatile 修饰。该类型的字段很少使用,
在此不做详细介绍。


方法

方法(method )是包含一系列语句的代码块,通过这些代
码块能够实现预先定义的计算或操作。方法一般声明在
类或结构中,由访问级别、返回值、方法名称、方法参
数和方法体组成。其中,访问级别、返回值、方法名称
和方法参数统称为方法的“签名”。方法参数包括在小
括弧(“()”)中,多个参数使用, (逗号)分隔。如
果为空括号,则表示该方法不需要参数。
1 .方法参数
2 .静态方法和实例方法
3 .虚方法和重写方法
4 .密封方法
5 .抽象方法


属性

属性(property )是C# 语言所特有的一种机制,它可以用于
访问对象或类的特性的成员。属性和字段非常相似,而
且访问属性和字段的语法相同。但是,属性不表示存储
位置(字段表示一个存储位置)。
属性通过一种被称为访问器的机制来获取或修改其值。其中
,获取属性的值的访问器为称为get 访问器,修改属性的
值的访问器被称为set 访问器,它们的具体说明如下:
 get 访问器相当于一个无参数方法,且该访问的返回值的
类型和属性的类型相同。在get 访问器中,必须包含
return 语句,返回该属性的值。
 set 访问器相当于一个返回类型为void 的方法,且该方法
只有一个参数,参数的类型和属性的类型相同。特别地
,该方法的参数名称始终约定为value 。


索引器

索引器(indexer )其实是一种含有参数的属性,又称为含
参属性。它提供索引的方式来访问对象,即与数组的访
问方式相同。声明索引器时,需要使用this 关键字。


构造函数

构造函数是类的一种特定的方法,它的名称和其所属类的名
称相同。构造函数是在创建给定类型的对象时执行的类
方法,通常用来初始化新对象的数据成员,即设置数据
成员的默认值。在任何时候,只要创建类,就会调用它
的构造函数。如果开发人员没有为类显式提供构造函数
,则默认情鱿C# 编译器将为该类创建一个默认的构造函

1 .实例构造函数
2 .静态构造函数


析构函数

析构函数(destructor )是一种用于实现销毁类实例所需操
作的成员。它和类的构造函数恰恰相反,类的构造函数
用来初始化该类的实例,而析构函数用来释放该类的实
例占用的资源,并销毁该类的实例。
析构函数的名称和类的名称一样,并带有“~” 字符。


事件

事件(event )是一种使对象或类能够提供通知的成员。客
户端可以通过提供事件处理程序(event handler )为相应
的事件添加可执行代码。类或对象可以通过事件向其他
类或对象通知发生的相关事情。
一个类或对象可以事先向其他类或对象注册一个事件,然后
在一定的时候引发该事件。如开发人员可以向在
Windows 窗体中的按钮注册一个事件,当用户单击该按
钮时,将引发该已注册的事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值