C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)

静态类

静态类不能被其他类继承,静态成员亦不能被继承(访问的是同一个),备注1.
静态类只能继承自Object类。(静态类不能继承自其它类。)
继承(多态)、静态本身就是相反的。
静态类不能实现任何接口, (因为接口中的成员都是实例成员。*)
sealed:(*)密封类,不能被继承。
sealed关键字,表示类不能被继承。(密封类)
密封类表示不能被继承。String类。.net系统中本身对字符串有很多特殊处理(为String开了很多“绿灯”,String有很多特权,比如:不可变性,字符串池等等。),防止别的类继承后造成混乱。商业问题。
禁止子类重写父类的方法。
静态类的本质abstract+sealed(*,知道即可)static
静态类不能被实例化:abstract
静态类不能被继承:sealed


值类型:
int、char、double、float、long、short、byte、bool、enum、struct、decimal
值类型都是派生自ValueType
值类型不能继承,只能实现接口。





引用类型:
string、数组、类(子定义数据类型)、接口、委托、
int[] n={1,2,3};//引用类型。
引用类型都派生自:Object
引用类型可以继承(类之间可以继承)







枚举
一组和数值有关的常量
enum Gender { Male,Female}
enum Weeks { 星期日=0,星期一,}

把字符串转换成枚举Gender g = (Gender)Enum.Parse(typeof(Gender), "Male");



结构
就是小类,值类型
不能继承类
可以实现接口
不能有显示无参构造函数(隐式)

结构中不能给字段赋初始值



ref与out

1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 
2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

ref :可进可出,要赋初值

out :只出 不进  可以没有初值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值