Unity3d游戏开发

C# 编程开发

2020-01-17  本文已影响0人  王广帅

一,垃圾回收

1,垃圾回收会整理内存堆的碎片。使用过的内存和未使用的内存区域是整体连接的。

2,C#有一个专门的大对象堆,当对象大于85000字节时,它就会放到这个特殊堆上面。

3,垃圾回收是根据根引用表判断的,比如A引用B,B也引用了A,它是他们俩个都不在根表上,所以都会被垃圾回收。

4,实现析构函数的类需要两次垃圾回收才能删除,运行库使用一个线程调用对象的Finalize()方法!

5,使用using()可以自动调用类的Dispose()方法,去释放资源

二,快捷方式

1,生成set get方法 ctrl+r+e;

2,注释:ctrl +k,c

三,vs应用

1,如何在某个类中执行Main方法

在项目上单击右键->属性,如下图,在启动对象中查找要执行Main方法的类,然后启动即可。

image

终结器和Disposable使用规则

1,如果类定义了实现IDisposable()的成员,该 类也应该实现IDisposable.

2,实现IDisposable并不意味着也应该实现一个终结器。终结器会带来额外的开销,因为它需要创建一个对象,释放对象的内存,需要GC的额外处理,只在需要时才应该实现终结器。例如 发布本机资源,要释放 本机资源,就需要终结器。

3,如果实现了终结器,也应该 实现IDisposable接口,这样本机资源可以早点释放,而不用等到GC时才释放。

4,终结器的执行顺序是没有保证的。

5,如果所使用的对象实现了IDisposable接口,就在不再需要对象时调用 Dispose()方法。如果在方法中使用这个对象,最好使用using比较方便,如果对象是类的一个成员,就让类也实现IDisposable。

C# 泛型如何判断是否为null

T obj ;
if(Object.ReferenceEquals(null, this.bodyObj)){
}
上一篇 下一篇

猜你喜欢

热点阅读