首先确保所引用的类已被正确初始化,其次可以在虚拟方法内部对类进行判断,如果引用的类为null则进行一些相应的操作,例如抛出异常或者返回默认值。以下为代码示例:
public abstract class MyBaseClass
{
public virtual MyOtherClass GetMyOtherClass()
{
//引用可能为空,添加对其的判断
if(_myOtherClass == null){
throw new NullReferenceException("_myOtherClass引用为空!");
}
return _myOtherClass;
}
private MyOtherClass _myOtherClass;
}
public class MyOtherClass
{
//类的实现
}
public class MyClass : MyBaseClass
{
public MyClass()
{
_myOtherClass = new MyOtherClass();
}
}
在以上示例中,我们通过添加对引用的类的判断,保证了虚拟方法仅返回正确初始化后的类。