问题描述
函数CastIt(byval z as boolean)As ??
if z then
CastIt = DirectCast(ActiveMdiChild,MyForm1)
else
CastIt = DirectCast(ActiveMdiChild,MyForm2)
结束如果
结束功能
我可以吗?在VB中创建一个返回DirectCast结果的函数。
我想我不知道的是用什么?以上。
是否可以在VB中执行此操作?
谢谢
PS
我会这样用它
ZZ = CastIt.Getsomething
其中MyForm1和MyForm2都有属性Getsomething
我发现很难相信编译器会让我这样做但是你可能会看到一个不同的方法。
我可以在没有功能的情况下这样做
如果z那么
qq = DirectCast(ActiveMdiChild,MyForm1).Getsomething
else
qq = DirectCast(ActiveMdiChild,MyForm2).Getsomthing
结束如果
但我需要多次这样做
谢谢
Function CastIt (byval z as boolean) As ??
if z then
CastIt = DirectCast(ActiveMdiChild, MyForm1)
else
CastIt = DirectCast(ActiveMdiChild, MyForm2)
end if
End Function
Can I make a function in VB that returns the result of a DirectCast.
I think what I don''t know is what to use for ?? above.
Is it possible to do this in VB?
Thanks
PS
I''d use it like this
ZZ= CastIt.Getsomething
Where both MyForm1 and MyForm2 have the property Getsomething
I find it hard to believe the compiler would let me do that but maybe you
see a different approach.
I could do it without a function
if z then
qq = DirectCast(ActiveMdiChild, MyForm1).Getsomething
else
qq = DirectCast(ActiveMdiChild, MyForm2).Getsomthing
end if
But I need to do it many times
Thanks
推荐答案
不是真的,如果方法是分别在两种类型中声明的,那么它们就是'b $ b'共享''Form''作为公共基类。 br />
但是,如果在基类型(基类)中定义方法或实现
包含该方法的接口,则可以使用此类型作为方法's
返回类型。
-
MS Herfried K. Wagner
MVP < URL:http://dotnet.mvps.org/>
VB< URL:http://dotnet.mvps.org/dotnet/faqs/>
Not really, if the method is declared in both types separately and they
share ''Form'' as common base class.
However, if you define the method in a base type (base class) or implement
an interface containing the method, you can use this type as the method''s
return type.
--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
你不能让函数返回不同的数据类型。
你可以做的是创建一个继承Form的基类并包含
虚拟方法GetSomething,并让每个表单继承自基础
cla ss而不是Form并实现GetSomething方法。
然后你可以将你的引用转换为基类,并调用方法。
-
G?跑Andersson
_____
这篇关于在VB中进行这种转换是否可行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!