我正在使用VB.Net在Visual Studio 2015中工作。我知道重载一个子/函数,这可能是我的问题的答案,但我想知道是否有更简洁的方法来处理这个问题。
我正在做一些游戏设计测试,我已经制作了两个类,它们共享一些相同类型的变量。 (HP,MP,攻击,防御等)我将有一个sub将接收一个玩家并修改其中一些统计数据。我也将为敌人类提供相同的潜艇。潜艇将完全相同,因为他们正在处理共享统计数据,所以他们会排队。
我的整体问题不是为播放器类编写一个子类来修改它们,而是通过复制它并将传入的变量类型更改为敌人来重载它,有没有办法写一次sub并在标题中指示可以有两种不同的类型,但只有一种可以接受吗?
现在我的标题看起来像这样
Sub round(ByRef x as player)
Sub round(ByRef x as enemy)
有没有办法只有一个带有标题的子
Sub round(ByRef x as player Or enemy)
我已经尝试过上面的代码,但它不起作用。我甚至不确定这是可能的。我最好的选择是超载潜艇吗?感谢。
答案 0 :(得分:4)
你提到潜艇将是相同的 - 并且你的玩家和敌人类有(某些)相同的属性,他们都共享。这听起来像这些类的理想情况
或者
哪个更合适可能取决于你的具体情况,但在任何一种情况下,你只需要在你的Sub中接受基类/接口类型的实例,然后你只需要它的一个副本,例如< / p>
Sub round(ByRef x As GameCharacter) 'base class
或
Sub round(ByRef x As IGameCharacter) 'interface definition