unity 小问题

来源:互联网 发布:楼宇智能化知乎 编辑:程序博客网 时间:2024/06/10 06:31


1.C++指针和引用的区别:

  (1) 指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。

★相同点:

●都是地址的概念;

指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。

★不同点:

●指针是一个实体,而引用仅是个别名;

●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;

●引用没有const,指针有constconst的指针不可变;(具体指没有int&const a这种形式,而const int&a是有的,前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变)

●引用不能为空,指针可以为空;

●“sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身的大小;

●指针和引用的自增(++)运算意义不一样;

●引用是类型安全的,而指针不是(引用比指针多了类型检查


链接:http://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html

           http://blog.sina.com.cn/s/blog_4ed9fbab01014pp3.html


2.c#中out和ref的区别:

①:ref指定的参数在函数调用时候必须初始化,不能为空的引用。而out指定的参数在函数调用时候可以不初始化;
②:out指定的参数在进入函数时会清空自己,必须在函数内部赋初值。而ref指定的参数不需要。

链接:http://www.cnblogs.com/gsk99/archive/2010/12/13/1904557.html

 

3.c# lock关键字:     

lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。

先来看看执行过程,代码示例如下:

假设线程A先执行,线程B稍微慢一点。线程A执行到lock语句,判断obj是否已申请了互斥锁,

判断依据是逐个与已存在的锁进行object.ReferenceEquals比较(此处未加证实),如果不存

在,则申请一个新的互斥锁,这时线程A进入lock里面了。

这时假设线程B启动了,而线程A还未执行完lock里面的代码。线程B执行到lock语句,检查到obj

已经申请了互斥锁,于是等待;直到线程A执行完毕,释放互斥锁,线程B才能申请新的互斥锁并执行

lock里面的代码。


接: http://www.cnblogs.com/jintianhu/archive/2010/11/19/1881494.html


4.c# 接口(interface):

1.首先很多人觉得已经有了类,干嘛还需要接口?

答:在程序开发中,有时要求某些类具有特定的方法、属性,为了避免开发者遗漏,C#提供了接口的概念。接口定义了类必须包含的部分,如果有遗漏,就会发生语法错误!通俗说:接口定义了一些东西(方法、属性、索引器、事件),继承这个接口的类必须实现该接口的所有定义内容,缺一不可!

2.接口是什么玩意?

答:接口是一种用来定义程序的协议,仅仅是定义,不能赋值,举个例子,他定义 int Add();这一句话就够了,而实现这个加法算法的方法让继承它的那个类去实现!


3.类和接口简单的区别?

答:在继承方面,类继承类的话,类只能有一个类爸爸;类继承接口的话,类可以有多个接口爸爸;接口继承接口的话,接口也可以有多个接口爸爸。再通俗点说:有了接口,间接实现了类的多重继承!


4.接口及接口成员声明?

答:声明接口时,除interface关键字和接口名称,其他都可选的。重点::::可以使用new、public、protected、internal、private等修饰符来声明接口,但是接口里的成员必须是公共的,也就是说定义接口里面的成员时不用加修饰符,它默认的是public,你如果手贱写了其他如private等修饰符,就报错了。


链接:http://blog.csdn.net/u010763324/article/details/40952801

            http://blog.jobbole.com/85751/


0 0
原创粉丝点击