【发布时间】:2015-07-30 06:52:53
【问题描述】:
Start:
if(fileName.Contains("$track"))
if(musicInfo.Tag.Track.ToString() != "") {
fileName.Replace("$track", musicInfo.Tag.Track.ToString());
}
else {
switch(System.Windows.Forms.MessageBox.Show("Error: Track # missing from tag info", "Error", System.Windows.Forms.MessageBoxButtons.AbortRetryIgnore, System.Windows.Forms.MessageBoxIcon.Error)) {
case System.Windows.Forms.DialogResult.Abort:
fileName = "ABORTED";
return fileName;
case System.Windows.Forms.DialogResult.Retry:
goto Start;
case System.Windows.Forms.DialogResult.Ignore:
fileName.Replace("$track", "");
}
}
我想不出更好的写法,这段代码还有 7 块。
【问题讨论】:
-
我不确定效率更高,但
goto是很多人讨厌的一段代码。如果文件名包含轨道和标签轨道为空,点击重试只会将它们带到下一个消息框重复重试 -
恐龙来袭...i.stack.imgur.com/thuIW.png
-
嗯,我应该把它改成一个while循环吗?我觉得这只会添加更多代码,我知道它会将它们带到另一个盒子,这是为了让他们可以将任何缺少的细节添加到标签然后单击重试。
-
他们没有机会添加更多细节,如果他们点击重试,让他们进入那个消息框的条件没有机会改变,所以只要他们点击重试他们会被困在同一个地方
-
详情可在windows explorer中添加
标签: c# taglib-sharp