コンソール アプリケーションでこのような問題に遭遇したことはありません - かなり恐ろしいビープ音が聞こえ、プログラム (および私のコンピューター) が一瞬フリーズし、その後コンソールが動作を停止するだけです。エラー メッセージも表示されません。
私はこのテキストファイルを持っています。私はそれを次のように読み、数字をリストに分割しました:
string path = @"C:\Users\owner\Documents\Quick Access\cipher1.txt";
string data = "";
using (StreamReader sr = new StreamReader(path))
{
data = sr.ReadToEnd();
}
List<int> encryptedNums = new List<int>();
foreach (string s in data.Split(','))
{
encryptedNums.Add(Convert.ToInt32(s));
}
各数値は ASCII 文字を表します。これらの数値を文字列に連結したい:
string encryptedString = "";
//WTF????
foreach (int n in encryptedNums)
{
encryptedString += (char)n;
}
ループにより、foreach
非常に奇妙な変換が行われます。文字を 1 つずつ出力してASCII テーブルと比較すると、結果が明らかに一致していないことがわかります。たとえば、数字の 2 はスマイリー型の数字になります。変換の 1 つで、ビープ音が発生します。
これが本当に私を悩ませているものです。基本的に同じことを行う別の方法があります-整数のリストがあり、それらを文字列に変換しようとします:
string s = "";
foreach (int n in decrypted)
{
s += (char)n;
}
しかし、これは実際には適切な文字列になります! エラーの場所と、最初の変換が失敗した理由がわかりませんが、2 番目の変換 (何かが欠けていない限り、コードは同じです) は問題ありません。
助けていただければ幸いです。
最終的に原因となるコードは、クラッシュが印刷されていることencryptedString
です。