第三章 对象和类型 一、类和结构的区别 类是存储在堆当中的引用类型,如果需要存储在堆栈上可以在类名后加上Struct,例如类CustomerList是存储在堆上的,当定义类CustomerListStruct则存储在堆栈上。 结构是存储在堆栈中的值类型。 在c#中将java中的成员变量称为字段。 二、类的成员 数据成员:字段、常量、事件 函数成员:方法、属性、构造函数、终结器、索引器 事件与函数的区别:事件就是一个函数,但是它是一个特别的函数,只有在用户激发了某一事件之后才会促使事件的发生,而函数是操作类中数据的某些定义的功能。 方法: 说明1、每个方法都必须要定义自己的访问权限,而不可以使用C++中的块。 说明2、在定义方法时,参数必需包含参数类型和引用名称,例如:(int xx,string yy) 说明3、如果方法有返回值,那么必须要与return一起使用,例如:return(xx+yy) 一个方法可以带有多个return语句,当方法定义为void类型时,可以不要return语句。 方法的调用:分静态方法和非静态方法调用,有JAVA编程经验的老兄都知道了,就不啰嗦了。 参数的传递:所有的参数都是通过值来传递的,但是当传递的是值类型的变量时,不管在方法体中对该变量作了什么改变,都不会影响该变量。但是如果变量传递的是引用类型的值,那么这个值会随着方法体中的引用而改变,例如数组等。字符串虽然是引用类但它例外。 强迫传递引用变量ref的使用:通常是通过值传递变量的,但是如果需要强迫改变传递的值,即转化为引用类型。用法如下:
out关键字: 当函数要返回多个值时,需要通过引用值方式进行返回,前面我们已经知道引用值的传递必须要初始化,是不是每个变量都先初始化再传递,这样显然比较的麻烦,这里我们就可以使用out关键字来简化过程。 下面是一个例子:
|