首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

Shared 函数中如何返回 Class Name

2012-01-31 
Shared 函数中怎么返回 Class Name比如,我们在类被实例化后,返回类名的方法是:VB.NET codeClass Personpub

Shared 函数中怎么返回 Class Name
比如,我们在类被实例化后,返回类名的方法是:

VB.NET code
Class Person    public function getFullClassName() as string        return me.getType.FullName.Trim    end functionEnd Class


那么,如果 getClassName() 函数是 shared 的时候该怎么办啊?
VB.NET code
Public 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的语法,可能有些许错误,大意就是这样。

[解决办法]
你是要做工具类还是要通过继承?

工具类,你传递类型当参数

继承的话,派生类都会有基类的访问级别够的方法

热点排行