Shared 函数中如何返回 Class Name
Shared 函数中怎么返回 Class Name比如,我们在类被实例化后,返回类名的方法是:VB.NET codeClass Personpub
Shared 函数中怎么返回 Class Name
比如,我们在类被实例化后,返回类名的方法是:
VB.NET codeClass Person public function getFullClassName() as string return me.getType.FullName.Trim end functionEnd Class
那么,如果 getClassName() 函数是 shared 的时候该怎么办啊?
VB.NET codePublic Mustinherit Class Person public shared function getFullClassName() as string return "???" '这里想返回 Inherit 了此类的类名该怎么办? end functionEnd Classpublic class Man inherit Person private mSex as string '...end class
'调用意图: 其实,这时候您可能已经发现,我的最终目的是想通过
在类 Man 被实例化之前,直接 Man.getFullClassName() 得到 Man 的全名;
同时又不想把 getFullClassName 写在 Man 里(因为类似 Man 的东西很多)
[求高人指点,100分敬上!谢谢...]
[解决办法]你可以使用虚拟函数
Public Mustinherit Class Person
public MustOverride function getFullClassName() as string
End Class
public class Man
inherit Person
private mSex as string
public Overrides function getFullClassName() as string
return me.getType.FullName.Trim
end function
end class
使用的时候
Dim obj as Person = new Man
obj.getFullClassName返回的是 man的类名。
不太熟悉vb.net的语法,可能有些许错误,大意就是这样。
[解决办法]你是要做工具类还是要通过继承?
工具类,你传递类型当参数
继承的话,派生类都会有基类的访问级别够的方法