2017-11-17 9 views
0

この種の質問は以前に聞かれるかもしれませんが、私の周りに頭を浮かべることはできません。数値データを文字列として取り出す方法

私は、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#の経験はありませんでしたので、思ったよりも混乱していました。

+0

を*私の計画は、列挙型*に保管することでした:任意のコードや問題が? –

答えて

0

はい、enumを使用します。

public enum OperationFailureType 
{ 
    UR_NOT_ACTIVE = 1, 
    UR_OUT_OF_BOUND = 2, 
    UR_INVALID_COMMAND = 3 
} 

今、あなたは、テキストを取得するためにenumValue.ToStringを使用することができますし、番号を取得するためにintにキャストすることができます。

MessageBox.Show($"Error uploading: {e.ReceivedData[0].ToString()}"); 

推定すると、ReceivedDataはこの列挙型の配列になります。それだけでint[]だとあなたはそれを変更することができない場合は、OperationFailureTypeにキャストすることができます

OperationFailureType failureType = (OperationFailureType) e.ReceivedData[0]; 
MessageBox.Show($"Error uploading: {failureType.ToString()}"); 
+0

'' DisplayAttribute''もうまくいくはずです - https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayattribute(v=vs.110).aspx –

+0

Tim Schmelter、ありがとう早い反応。安全な私のお尻今日、残りのOOPは、今週の残りの部分です。 :D –

関連する問題