在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;
}
}
(注:我听说Unity3D对C#的实现略有不同。也许可以忽略一些小的格式错误,代码似乎是可行的……)
我的第一反应是将~Character()析构函数定义为虚函数,如下所示:
virtual ~Character(){
}
然而这样做会导致IDE返回错误。
在C#中,对于希望被继承的抽象类,是否有必要或者被认为是标准使用虚析构函数?还是说有其他方法可以使用C#实现虚析构函数?