`
hyshucom
  • 浏览: 811636 次
文章分类
社区版块
存档分类
最新评论

C#中一点概念学习笔记

 
阅读更多

1 接口

接口负责功能的定义,不负责功能的实现,具体实现由类负责。Tips:

① 接口可以用任何可访问性来声明,但接口成员必须全部具有公共可访问性。即定义接口成员不能使用访问修饰符。

② 不能向成员或者接口本身添加安全性权限,不能使用static、virtual、abstract和sealed来定义。

③ 接口不能定义构造函数,不允许定义字段。且接口中的属性和方法均是只定义未实现。

④ 接口允许继承或者被继承,且支持多重继承。

2 抽象类与抽象方法

抽象类是用来提供多个派生类可共享的基类的公共定义,使用abstract关键字定义。抽象类与接口最大的区别是抽象类可以定义方法的实现。抽象成员不能是私有的且抽象类的派生类必须实现该抽象类的所有抽象方法。

3变量类型转换

强制转换:通过“()”实现,若类型转换不允许,则产生错误。

as运算符:用于兼容引用类型之间执行转换,转换不成功转换结果为空,但不引发异常。

4 关键字 virtual override static

①virtual关键字

virtual关键字用来修饰方法、属性、索引器或事件声明,并且允许在派生类中重写(override)这些对象。Virtual修饰符不能与static、abstract和override修饰符一起使用,也不能用于静态属性。

②static关键字

Static修饰符可用于类、字段、属性、运算符、事件和构造函数,不能用于索引器,析构函数或类以外的类型。使用的注意事项:

A. 常数或者类型声明隐式的是静态成员;

B. 对类使用static关键字,则该类的所有成员都必须是静态的;

C. 不可以使用this来引用静态方法或属性访问器;

D. 不能通过实例引用静态成员,可以通过类型名称来引用。

静态类主要特点:

A. 静态类仅含静态成员

B. 静态类不能被实例化

C. 静态类是密封的

D. 静态类不能包含实例构造函数(但可声明静态构造函数

5字段与属性

字段(field)用以封装数据,所以字段一般私有的,不要为字段提供public或protected访问修饰符。属性则是类中除方法外另外一种对字段进行操作的“方法”,利用get与set对字段进行读取或者赋值。

6迭代器

C#2.0版本中的新功能,是方法、get访问器或运算符,使得开发人员能够在类或结构中支持foreach迭代,而不必实现IEnumerable结构。迭代器的特点如下:

A. 是可以返回相同类型的值的有序序列的一段代码

B. 可用作方法。运算符或get访问器的代码体

C. 代码中用yield returen语句依次返回每个元素,yield break将终止迭代。

D. 返回类型必须是IEnumerable和IEnumerator中的任意一种

Foreach语句用于访问数组或者对象集合中的每个元素,但不能更改集合内容。

7索引器

Exmple:

Class IntSet

{

Int[] intArray =new int[100];

public int this[int i] // 类IntSet 的索引器

{

get

{

return intArray;

}

set

{

intArray=value;

}

}

}

说明:

① get访问器返回值,set访问器分配值

② this关键字用于定义索引器 value关键字用来定义由set索引器分配的值

③ 索引器可自行定义查找机制,可被重载,也可有多个形参。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics