您现在所在的位置:首页 >学习资源 > Unity游戏/VR/AR入门教材 > VR开发入门教程25:面向对象之访问修饰符

VR开发入门教程25:面向对象之访问修饰符

来源:奇酷教育 发表于:

Is和asis:语法:对象 is 类型检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,如果一个对象是某个类型或是其父类型的话就返回为t

Is和as
is:
 
语法:对象 is 类型
检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。永远不会抛出异常
如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型
 
as
1、检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2、不会抛出异常;
3、如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
4、用as来进行类型转换的时候,所要转换的对象类型必须是目标类型或者转换目标类型的派生类型
 
使用as操作符有如下2点限制:
1.类型不兼容的情况 (编译器自动阻挡)
2.转换的目标类型不能为null的情况(编译器自动阻挡)
 
as与is的区别
1、as在转换的同时兼判断兼容性,如果无法进行转换,则 as 返回 null(没有产生新的对象)而不是引发异常。有了as我想以后就不要再用try-catch来做类型转换的判断了。因此as转换成功要判断是否为null。
2、as是引用类型类型的转换或者装箱转换,不能用于值类型的转换。如果是值类型只能结合is来强制转换
3、is只是做类型兼容判断,并不执行真正的类型转换。返回true或false,不会返回null,对象为null也会返回false。
4、as模式的效率要比is模式的高,因为借助is进行类型转换的化,需要执行两次类型兼容检查。而as只需要做一次类型兼容,一次null检查,null检查要比类型兼容检查快。
访问修饰符
字段、方法、属性都可以叫做类的成员Member,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问。
 
访问修饰符:public/private/internal/protected
private : 私有成员, 在类的内部才可以访问。
public : 公共成员,完全公开,没有访问限制。
protected : 保护成员,该类内部和继承类中可以访问。
internal: 当前程序集内可以访问。程序集:exe\dll中
internal protected:internal 和 protected的并集, 同一个程序集中的所有类,以及所有程序集中的子类。
 
修饰符可以修饰的内容:
类(class)和结构(struct)只能用public, internal来修饰
成员(属性、方法)能用以上5种来修饰
 
默认没有访问修饰符的默认规则:
类中字段和方法默认的访问修饰符是private
类(class)和结构(struct)默认的访问修饰符是internal
 
注:程序集(Assembly)-一般指一个Exe可执行文件或类库(DLL文件)