代码改变世界

随笔分类 -  C#语言

LINQ API的关键要素——C#3.0的新特性(一)

2010-01-11 20:37 by 张智清, 574 阅读, 收藏, 编辑
摘要: 隐含类型变量在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的var类似,但也有不同。相同之处是它可以用var来声明任何类型的局部变量;而不同之处在于它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。 为了保证使用var关键字进行声明的变量的强类型特性,C#3.0要求你必须对变量赋初值(初始化),并且放到的同一行。同样,初始化值必须是一个表达式,不能是一个对象或者collection初始化器,也不能为null。 阅读全文

C#学习笔记之三:C#接口与事件委托

2010-01-11 10:39 by 张智清, 6448 阅读, 收藏, 编辑
摘要: ★ 接口就是语义相关的一个或多个抽象成员组成的命名集合。只有在接口被一个类或结构实现了,否则它们是不起任何作用的。 接口定义(声明): ★ 在C#中,接口使用interface关键字来定义。接口从不指定一个基类(甚至是System.Object),接口包含的成员不带访问修饰符。 ★ 所有接口成员都隐式规定为公共的(public)。在接口中,所有方法都是抽象的。 ★ 接口可由方法、属性、事件、索引器或这4种成员类型的任何组合构成。接口不能包含字段。 ★ 类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有get访问器的属性(即只读属性),而实现该接口的类可以声明同时带有get和set访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。 阅读全文

C#语言学习笔记二

2009-03-14 22:59 by 张智清, 408 阅读, 收藏, 编辑
摘要: C# 2.0面向对象编程——议OOP三大支柱 ★ 当显式地引用当前对象的字段和成员时,就需要使用C#的this关键字。往往使用C#的this进行自引用来解决名称冲突(一般是参数名称和内部状态变量名称之间的冲突)。 ★ 静态成员在其方法作用域中不能使用this关键字。这是有意义的,因为静态成员函数在类(而不是对象)级别上操作,没有this! ★ this关键字的另一个用处是:强制一个构造函数调用另一个构造函数,以避免冗余的成员初始化逻辑。(即使用this转发构造函数调用) ★ 类的公共接口是指通过点运算符从一个对象变量可以直接访问到的成员集合。 C#的封装支持: ★ 封装的核心是:对象的字段数据不应该从公共接口直接访问。如果用户想改变对象的状态,则是通过间接地使用访问方法(get)和修改方法(set)。就是说封装提供了一种保护状态数据完整性的方法——定义私有数据字段。定义私有字段的主要方式有二: 阅读全文

C#学习笔记一

2009-03-14 22:57 by 张智清, 457 阅读, 收藏, 编辑
摘要: ★ C#要求所有的程序逻辑都包含在一个类型定义中(类型是指集合{类、接口、结构、枚举、委托}中的一个成员)。 ★ 每一个可执行的C#应用程序必须包含一个且唯一定义了Main()方法的类。该方法用来指明应用程序的入口点。该方法应是公共的(public)、静态的(static)。其返回值为void或int类型。 ★ 类是一个关于用户定义类型(UDT)的定义。而对象则描述的是某个类在内存中的一个特定实例。 ★ 在C#中,new关键字是创建一个对象的标准方法。new关键字负责给指定对象计算正确的字节数,并从托管堆(heap)上获得足够的内存。 ★ C#的对象变量事实上是对内存中对象的引用,并不是实际的对象本身。 ★ 在C#中类的默认构造函数可以由系统自动提供或用户显式重定义。 ★ 在C#中类的默认构造函数保证所有的成员数据都设置成一个合适的默认值(所有的构造函数都具有这种行为),这与C++是不同的。 ★ 在C#中构造函数的名字跟其所构建的类一样,并且它们从来不提供返回值(即便是void也不行)。即构造函数没有返回值。 阅读全文
点击右上角即可分享
微信分享提示