例如:
public class Person
{
public Person()
{
}
~Person()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我什么时候应该手动创建析构函数?什么时候需要创建析构函数?
在C++中我知道当一个打算从基类继承时,通常应该使用虚拟析构函数.但是,使用C#我不知道该怎么做.请考虑以下代码:
public abstract class Character
{
private string characterName;
public int health;
Character()
{
}
~Character(){
}
public virtual void SetCharacterName( string tempName )
{
characterName = tempName;
}
public virtual string GetCharacterName( )
{
return characterName;
}
}
Run Code Online (Sandbox Code Playgroud)
(注意:我听说Unity的Unity3Ds实现与标准略有不同.也许忽略一些小的格式错误,代码似乎功能......)
我的第一直觉是将~Character()析构函数设为虚拟,将其定义为:
virtual ~Character(){
}
Run Code Online (Sandbox Code Playgroud)
但这样做会导致IDE返回错误.
在C#中,对于希望继承的抽象类,使用虚拟析构函数是必要的还是被认为是标准的?还是有其他方法用C#制作虚拟析构函数?