之前可能会问这个问题,但是我无法理解它,所以我会感激任何帮助。
我有一个消息框,其中存储了我通过modbus通信接收的错误类型。
MessageBox.Show(String.Format("Error uploading: {0}", e.ReceivedData[0]));
e.ReceivedData[0]
正在保留我要在消息框中显示的数据。
因此,它可能是1 2 3 4 5 6 7.这些数字代表操作失败的类型。
但是,我想显示确切的错误消息
1 - "UR_NOT_ACTIVE",
2 - "UR_OUT_OF_BOUND",
3 - "UR_INVALID_COMMAND"
等等。
我的计划是将它存储在枚举中,但我之前没有使用过c#,所以它比我想象的更令人困惑。
1 个答案:
答案 0 :(得分:0)
是的,使用枚举:
public enum OperationFailureType
{
UR_NOT_ACTIVE = 1,
UR_OUT_OF_BOUND = 2,
UR_INVALID_COMMAND = 3
}
现在您可以使用enumValue.ToString来获取文本,然后可以将其强制转换为int以获取数字。
MessageBox.Show($"上传错误:{e.ReceivedData [0] .ToString()}");
假设ReceivedData现在是此枚举的数组。如果它只是一个int []并且您无法更改它,则可以将其强制转换为OperationFailureType:
OperationFailureType failureType =(OperationFailureType)e.ReceivedData [0];
MessageBox.Show($"上传错误:{failureType.ToString()}");