我只是发布主要是为了看看是否有更好的方法来做到这一点。我在 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));
}
}
代码基本摘要:从用户确定的特定块中恢复内存,并在该区域中搜索他们希望在运行时找到的值,然后在文本文件中编译搜索结果列表。