그래, 이건 이상한거야. 쓰레기 데이터는 무작위가 아니며 실행 파일 자체의 하위 문자열로 보입니다.문자열 (C#)의 정크 데이터를 야기한 예외
private void Form1_Load(object sender, EventArgs e)
{
string s = GetValue();
// at this point, s == "400". Why isn't really relevant (dumbed down a test)
if (s != "18446744073709551615")
throw new Exception();
// When the exception is thrown though, the string is set to random
// data from inside the executable.
}
이것은 다른 장소에있는 및 String.format() 호출로 GetValue 특정 겉보기에 하찮은 구현 세부 사항()에 의존하는 것 같다.
누구나 비슷한 것을 경험했거나 이와 관련하여 어떤 아이디어가 있습니까?
나는 당신이 데이터를 확인하는 "때"가 또 다른 큰 문제는 어떻게 더 중요한 것은 "S"의 데이터를 점검되고있다 –
얼마나 오래 상관없이 정의를 GetValue()의를 포함하지한다고 생각? 예외가 throw 된 후 "s"가 범위를 벗어난 후에 확인하고 있습니까? –
예, VS가 처리되지 않은 예외 사항을 팝업 한 후입니다. 전에는 로컬 변수에 대해 이런 일이 발생했음을 기억하지 못합니다. –