0

我只是发布主要是为了看看是否有更好的方法来做到这一点。我在 C# 中最大的烦恼绝对是过度过度使用 If 语句来确定应该执行什么函数,即:

if (comboBoxEdit1.Text == "Soup")

else if (comboBoxEdit1.Text == "Salad")
//Continues on for 10 more statements

所以我想知道的是,我是否可以根据我的组合框的选定索引来确定我应该如何解析文本框中的某个值。即:comboBox 是 Int32

Int32.TryParse(textEdit1.Text, out i); 

真的是使用 if 语句的最佳方式吗?任何帮助,将不胜感激!

编辑:完整代码

//Convert.To(x) depends on combo box
    searchVal = BitConverter.GetBytes(Convert.ToUInt32(searchBox.Text));
                toGet = (uint)searchVal.Length;

for (uint i = 0; i <= memSize/toGet; i++)
            {
                uint address = startAddress + (i * toGet);
                byte[] recoveredMem = XboxSupport.GetMem(address, toGet);
if (recoveredMem == searchVal)
                    {
                        if (valType == "UInt32")
                        {
                            uint val = BitConverter.ToUInt32(recoveredMem, 0);
                            siInfo.Caption = String.Format("{0} Found At Address: {1}", val, String.Format("0x" + String.Format("{0:X}", address)));
                            File.AppendAllText(path, String.Format("0x" + String.Format("{0:X}", address) + " | {0}", "{1}", val, Environment.NewLine));
                        }
    }

代码基本摘要:从用户确定的特定块中恢复内存,并在该区域中搜索他们希望在运行时找到的值,然后在文本文件中编译搜索结果列表。

4

1 回答 1

3

也许switch-case可能会有所帮助。您可以使用 switch 语句,而不是使用所有的“if”语句。这是一个例子:

switch(comboBox1.Text)
{
    case "Soup":
        //Function
        break;

    case "Salad":
    case "AnotherItem":
        //Do Something
        break;

    case "AnotherAnotherItem":
        //Do Something else
        break;

default:
    //Not specified.
    break;
}

那会有帮助吗?在每种情况下,您都可以选择执行特定功能等。

于 2013-10-27T19:11:11.323 回答