首页 > 其他 > 详细

c#复习笔记 类与结构

时间:2014-03-16 15:29:34      阅读:386      评论:0      收藏:0      [点我收藏+]

结构与类,类是存储在堆heap上的引用类型,结构是在栈stack上的值类型,结构不支持继承

类:

一、数据成员:字段,常量,事件的成员

二、函数成员:方法、属性、构造函数、终结器(析构函数)、运算符重载、索引器。

1】方法

方法的申明[modifiers] return_type MethodName([parameters])

{

//method body

return data ;//or void

}

参数可以通过引用传递和值传递传递给方法

通过引用传递给方法的话,对象在方法内部发生的任何改变退出后任然有效(也就是传递的是指针)。

通过值传递则不会这样,被调用的方法得到的变量的一个相同副本,也就是退出后原值不会发生改变。

一些思考:其实被调用的方法都得到了一个副本,只不过引用方法得到了一个引用的副本,ps引用(也可以叫做别名)是值类型,所以我们可以这么理解,传入的形参其实都是值类型的副本。

如果想改变值类型怎么办呢

Refout out可以和c中的指针等效,因为都需要初始化值才能够使用,ref则需要初始化值就可以使用,out可以不初始化(请探讨out设计的目的,就是为了输出一个值,而ref是为了改变)

重载:声明参数数量或者参数类型不同的就好。

2】属性

说白了。。就是两个变量和两个方法,两个变量:备用变量与value,方法get set

声明方法就是比字段多了一个大括号

原理:举例 属性 property 备用变量 _property 

property被赋值——value被赋值为property的值(valueset方法中的局部变量)——执行set事件中的代码。

当需要输出property的值时——执行get方法并且返回与之类型一样的变量

为什么要有局部变量,因为valueset内部的局部变量,需要保留value的值,所以便有了备用变量,所以很多时候,set第一步_property=value

(只读属性等,可以参照这两个方法的作用)

3】构造函数

初始化所有值之后执行构造函数,这里没有什么好解释的

Ps静态构造函数

(所有静态几乎都是一个道理。。。只执行一遍,并且在所有实例化执行之前执行)

静态方法,也就是可以直接类名.调用的方法

构造函数可以调用其他构造函数

ps】只读字段

Readonly,只能写一次

匿名类型 var

弱引用 使用WeakReference 

            WeakReference wangjiwr = new WeakReference(new property());

            property wangji = wangjiwr.Target as property;

            GC.Collect();

当类特别大的时候可以使用,这样可以让垃圾回收管理器回收空间

也是下次再调用的必须再次实例化一次

Ps所谓强引用就是property wangji = wangjiwr.Target as property;,这样是不会被回收的。

还有一个partial,就是可以在各个地方声明类的结构。

***结构***

Struct 优势,不在托管堆上,存储在栈中或存储为内联(inline)也就是,结构是值类型

所以,运行速度会快。

劣势,不支持继承 but 继承于object

c#复习笔记 类与结构,布布扣,bubuko.com

c#复习笔记 类与结构

原文:http://www.cnblogs.com/zuoguangxing/p/3603369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!