Vb.net 如何减少if-else语句的数量(例如,避免硬编码值)?
如何在不硬编码每个Jar版本的情况下做到这一点? 因此,在每一个Vb.net 如何减少if-else语句的数量(例如,避免硬编码值)?,vb.net,hardcoded,Vb.net,Hardcoded,如何在不硬编码每个Jar版本的情况下做到这一点? 因此,在每一个ElseIf中,它都会检查版本,如果是(例如1.2.5),然后相应地将软件下载到用户选择的路径+\+type+\+version+.jar。问题是有更多的版本(我想超过30个),我不想硬编码所有的版本 If JarVer = "1.2.1" Or JarVer = "1.2.2" Or JarVer = "1.2.3" Or JarVer = "1.2.4&quo
ElseIf
中,它都会检查版本,如果是(例如1.2.5),然后相应地将软件下载到用户选择的路径+\+type+\+version+.jar。问题是有更多的版本(我想超过30个),我不想硬编码所有的版本
If JarVer = "1.2.1" Or JarVer = "1.2.2" Or JarVer = "1.2.3" Or JarVer = "1.2.4" Then
My.Computer.Network.DownloadFile(
"https://assets.minecraft.net/1_2/minecraft_server.jar",
Path + "\" + SW + "_" + JarVer + ".jar")
ElseIf JarVer = "1.2.5" Then
My.Computer.Network.DownloadFile(
"https://assets.minecraft.net/1_2_5/minecraft_server.jar",
Path + "\" + SW + "_" + JarVer + ".jar")
ElseIf JarVer = "1.3.1" Then
My.Computer.Network.DownloadFile(
"https://launcher.mojang.com/v1/objects/d8321edc9470e56b8ad5c67bbd16beba25843336/server.jar",
Path + "\" + SW + "_" + JarVer + ".jar")
ElseIf JarVer = "1.3.2" Then
My.Computer.Network.DownloadFile(
"https://launcher.mojang.com/v1/objects/82563ce498bfc1fc8a2cb5bf236f7da86a390646/server.jar",
Path + "\" + SW + "_" + JarVer + ".jar")
ElseIf JarVer = "1.4.2" Then
My.Computer.Network.DownloadFile(
"https://launcher.mojang.com/v1/objects/3de2ae6c488135596e073a9589842800c9f53bfe/server.jar",
Path + "\" + SW + "_" + JarVer + ".jar")
...
除非你有一个一致的模式,否则它们必须在某个地方硬编码
我会考虑将列表放在数据表或字典中,然后从版本中查找URL。
您需要定义<代码> jARVER < /C>和下载路径之间的关系。如果你不想硬编码,你可以把它写进一个Excel表格或文本文件中,然后读出来计算下载量。也可以注意,一般来说,很多If-else有时是合适的。或者,在某些情况下,可以使用switch语句或字典。这些与语言无关的概念适用于大多数编程语言。