微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity知识点记录

C#值类型和引用类型

值类型的变量直接存储数据,值类型的实例通常是在线程栈上分配的(静态分配),但是在某些情形下可以存储在堆中。

引用类型的变量持有的是数据的引用,数据存储在数据堆中。

值类型直接存储其值,而引用类型存储对其值的引用

拆箱和装箱

装箱:将值类型(如 int ,或自定义的值类型等)转换成 object 或者接口类型的一个过程

拆箱就是从对象中提取对应的值类型的一个过程。

  装箱是隐式的;拆箱必定是显式的。

代码表示:

    int i = 123;      // 值类型
    object o = i;     // 装箱
    int j = (int)o;   // 拆箱

重载和重写的区别?

1:所处的位置不 同  重载在同类中 ;重写在父子类中;

2:定义方式不同

   重载方法名相同,参数列表(参数个数,参数类型)不同;

   重写方法名和参数列表都相同,父类中使用virtual关键字来把某个方法定义为虚方法,子类中使用Override关键字重写父类的虚方法

3:调用方式不同  重载使用相同对象以不同参数调用;重写用不同对象以相同的参数调用

4:多态时机不同  重载是编译时多态;重写是运行时多态;

String和StringBuilder的区别

1: String是不可变类,StringBuilder是可变类。

2: StringBuilder继承自AbstractStringBuilder这个类,而AbstractStringBuilder和String都继承自Object这个类(Object是所有java类的超类)。

3: string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响,这会降低.NET编译器的工作效率。

4: StringBuilder类则不同,每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能

总结一下

1、string继承object类,stringbuilder继承AbstractStringBuilder。
2、string是不可变类,stringbuilder是可变类。
3、stringstringbuilder运行速度比string快。

C#和C++相比结构体的独有用法

结构可带有方法、字段、索引、属性、运算符方法和事件。
结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义认的构造函数认的构造函数自动定义的,且不能被改变。
结构可实现一个或多个接口。
结构成员不能指定为 abstract、virtual 或 protected。
当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。

const  readonly 与sealed

  • const和readonly都是只读的。
  • 对于const,其修饰的常量类型为静态常量;
    对于readonly,其修饰的常量类型为动态常量。
  • const高效,readonly灵活。
  • 实际使用中,常常用static readonly来代替const,以此来平衡const在灵活性上的不足。

sealed,即密封类和密封方法

方法中使用sealed,只能是在已经被重写的方法中定义sealed,表示这个方法不可以再被重写。

委托,delate:三种泛型委托

Predicate <T>      Action<T>      Func

1.在这方法中存在一个Predicate <T> 表达式,它是一个返回bool的泛型委托,能接受一个任意类型的对象作为参数。

2.Action<T> 的使用方式与 Predicate<T> 相似,不同之处在于 Predicate<T> 返回值为 bool , Action<T> 的返回值为 void。

3.委托 Func 与 Action 相似,同样支持 0~16 个参数,不同之处在于Func 必须具有返回值

协程与线程的区别

  一个线程可以多个协程,一个进程也可以单独拥有多个协程。

  线程进程都是同步机制,而协程则是异步。

线程是协程的资源。协程通过Interceptor来间接使用线程这个资源。

结构和类的区别

结构是值类型,它在栈中分配空间

类是引用类型,它在堆中分配空间,栈中保存的只是引用

Struct变量使用完之后就自动解除内存分配,Class实例有垃圾回收机制来保证内存的回收处理。

结构体中声明的字段无法赋予初值,类可以

结构体的构造函数中,必须为结构体所有字段赋值,类的构造函数无此限制

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐