本文介绍了在VB中进行这种转换是否可行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

函数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中进行这种转换是否可行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 09:19
查看更多