需要帮助缩短重复的vb代码

时间:2016-04-22 19:17:02

标签: vb.net

我对编程很陌生,所以这可能是一个非常基本的问题。但是,我需要帮助来缩短这个重复的代码。 我正在制作一款卡片游戏,它有大约200种不同的生物,两个甲板(你和敌人),每个甲板上有10个槽(每个甲板上有10个生物)。

在我的用户界面的卡片制作工具部分,当你真正将一个生物添加到你的套牌时,它会这样做:

if(isset($_POST["selected"])){

    $selection1=$_POST["selected"];

    $url=mysite.com/index.php";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $selection1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

}

?>

如果该生物是" Ariel",那么它

If CritName = "Monarch" Then
    YourCreature1PictureDB.Image = DHBattleSim.My.Resources.Monarch_Icon
    YourCreature1Group.BackColor = Color.Transparent
End If

等。现在,想象有两百个这样的陈述,每个陈述都是针对不同的生物。然后我需要复制那么大的代码块,并将所有的1和2改为2,然后再将2改为3等等。 10,我必须复制所有这些并改变所有" YourCreature"短语到" EnemyCreature"。显然,这是非常重复和乏味的。 我知道查找和替换功能,但我宁愿缩短代码本身,以便我不必诉诸于此。

2 个答案:

答案 0 :(得分:3)

您可以使用此类代码

Dim resources As Object = DHBattleSim.My.Resources.ResourceManager
YourCreature1PictureDB.Image = resources.GetObject(yourVariable & "_Icon")

此,

YourCreature1Group.BackColor = Color.Transparent

可以跟随;在原始代码中,如果它始终设置为“透明”,则不需要在每个if中显示。

答案 1 :(得分:1)

创建一个用于设置图像的子项:

    Public Sub SetCreatureImage(critName As String)        
        YourCreature1PictureDB.Image = DHBattleSim.My.Resources.ResourceManager.GetObject(critName + "_Icon")
        YourCreature1Group.BackColor = Color.Transparent
    End Sub