C#的析构函数
发表于|更新于
|总字数:85|阅读时长:1分钟|浏览量:
当引用类型的堆内存被回收时,会调用该函数。如果想在某个对象被垃圾回收时做一些特殊处理,则会用到这个函数。
基本语法
class Person |
即~类名()
析构函数是当对象真正被回收的时候才会调用的函数
文章作者: 丨小小丶
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
相关推荐
2022-05-11
unity线程与协程
为什么在unity中一般不考虑多线程 在Unity中,使用多线程有较大的限制: UnityEngine中的API对象不能在子线程中使用 UnityEngine中定义的基本数据类型可以使用(如float、int、struct)。但是texture2D不能使用,因为其父类是UnityEngine.Object 多线程的常见使用场景一般只在于: 网络通信 需要处理复杂算法的计算 复杂密集的I/O操作 线程与协程的区别 对于协程而言,同一时间只能执行一个协程,而线程是并发的,可以同时有多个线程在运行 两者在内存上的使用是相通的,共享堆,不共享栈 最关键的也最简单的区别在于在微观上线程是并行的,而协程是串行的,协程的本质还是单线程,依旧是在主线程中进行。 协程的原理协程是通过迭代器来实现功能 ,通过关键字IEnumerator来定义一个迭代方法。注意这里使用的是IEnumerator,而不是IEnumerable 这二者间的区别: IEnumerator:非泛型的,也是协程认可的参数 IEnumerable:通过泛型实现的迭代器,协程不使用该迭代器 在迭代器...
2022-05-14
C#单例模式基类
public class Singleton<T> : MonoBehaviour where T : Singleton<T>{ public static T Instance { get; private set; } public bool isInitialized => Instance != null; protected virtual void Awake() { if (Instance != null) Destroy(gameObject); else Instance = (T) this; } protected virtual void OnDestroy() { if (Instance == this) { Instance = null; } }} 在继承于Single...
2022-05-14
C#关键字之virtual
C#关键字之virtual 虚方法的定义 当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法,虚方法是使用关键字virtual声明的,虚方法可以在不同的继承类中有不同的实现,即为基类中定义的允许在子类中重写的方法。 虚方法的声明 一般在函数的声明中添加一个virtual关键字 虚方法的调用 调用上,使用子类构造的对象调用虚方法,就会调用子类的方法,使用父类构造的对象,就会调用父类的方法。 在基类中声明的虚方法在子类中会对其进行调用,会用到base关键字,如果删除base关键字则表示是对父类方法直接进行重写 虚方法的规则 子类可以实现虚方法也可以不识闲虚方法 虚方法可以在不同的继承类中有不同的实现
2022-03-07
C#构造函数的特殊写法
例如 class Person { Stirng name; int age; public Person() { } public Person(int age) { this.age = age; } public Person(String name) { } public Person(String name, int age):this() { }} 这段代码中一共有四个构造函数,其中最后一个构造函数中:this()表示调用自身的无参构造函数,如果想调用其他有参构造函数,可以在其中直接传入参数的值,如public Person(String name, int age):this(age),其调用顺序为先调用this所指定的构造函数,再调用当前构造函数。
