2013-09-28 3 views
1

다음 코드에서 내가 시도한대로 strSide"does not exist in the current context" 이름으로 표시된 것처럼 중단 점을 배치합니다. strSiderawId의 마지막 문자를 포함시키고 해당 문자를 제거하여 rawId 값이 정수로 변환되도록합니다. 컴파일러 오류가 발생하지 않지만 런타임 오류가 발생합니다.이름이 현재 컨텍스트에 존재하지 않습니다. - grrr

값이 rawId 일 때 8429R 일 때 스트립 핑이 작동하지만 st30에 대해 R을 할당 할 수 없습니다.

 foreach (string fieldName in Request.QueryString) 
     { 
       rawId = fieldName; 
       String strSide = Convert.ToString(rawId[rawId.Length - 1]); <-- name does not exist 
       if (!IsNumeric(rawId)) <--break point set here. 
       { 
        rawId = StripRightChar(rawId); 
       } 
       Qty = Request.QueryString[fieldName]; 
      int productId = 0; 
      if (fieldName == "txtReference") 
      { 
       strComments = Request.QueryString[fieldName]; 
      } 
+0

을하고 지난 무엇 문자 참조 그 끈? 또는'rawId'에 "watch 추가". 당신의 문장'String strSide = Convert.ToString (rawId [rawId.Length - 1]);'은 아무 것도하지 않습니다. 왜 그걸 가지고 있니? 추신! 마지막 문자를 length-1 문자열로 가져 오는 또 다른 방법은'strSide = rawId.Substring (rawId.Length - 1);'입니다. –

답변

0

strSide에 저장된 값이 필요합니까?

당신이 값을 필요로하기 때문에, 이것을 시도, this alternative solution

업데이트를 시도 할 수없는 경우 : 당신은 그냥 rawId` '위에 마우스를 가져 수 없습니다

var s = "8429L"; 
var numbers = s.Substring(0, s.IndexOfAny("RLB".ToCharArray())); 
var letter = s.Substring(numbers.Length); 
+0

예, 값이 필요합니다. "R"(오른쪽), "L"(왼쪽) 또는 "B"(둘 다) 중 하나입니다. 부품의 측면이 필요한 표시기로 제품 ID 및 문자 파트로 숫자 부품을 전달해야합니다. 다음은 문자 추출을 시도한 방법입니다. // 문자열 strSide = Convert.ToString (rawId [rawId.Length - 1]); // Char strSide = rawId [rawId.Length - 1]; // 문자열 strSide = rawId.Substring (rawId.Length - 1, 1); char strSide = Convert.ToChar (rawId.Substring (rawId.Length - 1, 1)); –

+0

내 대답에 또 다른 제안을 추가했습니다. 원래 질문에 대한 대답이 아니기 때문에 왜 디버그 할 수 없습니까? –

관련 문제