C# 基础(一) 访问修饰符、ref与out、标志枚举等等
2012-10-03 14:54
489 查看
一、访问修饰符
在C#中的访问修饰符有:private、protected、internal、publicpublic:公共类型,同一程序集或其他程序集都可以访问此成员
private:私有类型,同一类里或结构里才可以访问此成员
protected:保护类型,同一类里或者派生类中才可以访问此成员
internal:内部类型,只有在同一程序集才可以访问此成员
访问性不一致:子类的访问权限不能比父类高。防止暴露父类的信息。。
二、static、const、readonly的区别
static :是静态的,共享的,可以更改的,定义的时候未赋值的时候,默认为类型的默认值;适用于类的多个实例共享一个属性或字段。const:定义的时候必须赋值,后面就改不了。
readonly:声明后,可在构造函数中初始化或者定义的时候赋值,实例对象不能修改。
三、ref与out
1、ref在使用前,要先赋值。而out参数在调用的方法里必须赋值,所以哪怕在传递之前赋值了,也没什么意义;2、当一个方法同时返回多个值的时候,可以考虑采用out参数;
3、ref主要是把一个值带进去,再带出来。out是带不进去,带出来。
四、可变参数:Param
1.可变参数只能放在参数列表的最后位置;2.可以传1个值,可以传多值,也可以不传值。可变参数不是null;
3.若传的长度为0的值,可变参数数组是一个长度为0的数组,但是,不是null。
五、值类型和引用类型
1.所有的引用类型都继承自Object,所有的值类型都继承自System.ValueType;2.引用类型对象赋值,只复制对对象的应用,值类型对象赋值,拷贝个副本给他;
3.对于值类型来说:栈中存储的就是直接使用的数据。对于引用类型来说:栈中存储的是堆中对象的地址。
六、枚举与标志枚举[Flags]
一般枚举的特性:1.一般枚举的每个值都是互斥的;
2.枚举的每个值都有一个对应数值来表示。可以手动设置对应的整数。一般都是使用int来替代;
3.枚举在编译完成后,就已经用对应的数据常量来表示;
4.枚举里的值可以转换为字符串。ToString()方法。
标志枚举[Flags]:
1.可以同时赋值多个枚举值,如文件的属性 xx |xxx;
2.标志枚举要在定义前,加上[Flags] :表示,.ToString返回的就是文字形式,不是数字的。赋值可以通过 |;
3.验证是否有这个枚举的数,可以采用if(枚举变量&枚举.值)==枚举.值
7、面向对象
面向对象的三大特性:封装、继承、多态面向对象的原则:对扩展开放,对修改关闭。
==================================系列文章==========================================
本篇文章:1.1 C# 基础(一) 访问修饰符、ref与out、标志枚举等等
C#文章导航
相关文章推荐
- C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)
- C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)
- C#基础:ref和out的区别
- C#基础知识八之访问修饰符
- C#基础之out,ref关键字
- C#基础知识(七)——方法重载与out、ref、params参数
- C#基础:ref和out的区别
- C#基础:ref和out的区别
- 基础_C# 方法、方法参数和返回值、属性 、索引器 、访问修饰符 访问修饰符
- C#基础:ref和out的区别
- C#基础:ref和out的区别
- C#基础: ref 和 out 区别
- [C#基础]ref和out的区别
- c#.net中参数修饰符ref,out ,params
- c#基础系列3---深入理解ref 和out
- 20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)
- c# 枚举基础 与 枚举属性的访问
- c#.net中参数修饰符ref,out ,params得区别
- c#.net中参数修饰符ref,out ,params
- C#基础学习--方法参数的种类,值参数,引用参数(ref),输出参数(out),数组参数(params)