2014-05-15 3 views
0

이 문제를 조사했지만 상황에 따라 틀린 것 같습니다.이름 '[insert name]'이 (가) 현재 컨텍스트에 존재하지 않습니다.

필자는 내 작업 중 하나에서 Windows Form 응용 프로그램 (Visual Studio 2008의 C#)을 작성했으며 지금은 몇 달이 지나면 다시 돌아오고 있습니다. 이 오류가 왜 저를 혼란스럽게하는지에 앞서 제대로 구축하고 실행하고있었습니다. 나는 파일이나 그런 종류의 것을 잃어 버렸을지도 모른다는 걱정이있다.

private void label1_Click(object sender, EventArgs e) 
    { 
     //Change progressBar label 
     label1.Text = progressBar1.Value.ToString(); 
     label1.Text += "%"; 


     //Check if any virtual parameters exist 
     foreach (string word in backgroundWords) 
     { 
      if (word == "Derived Table") 
      { 
       thereIsAVirtual = true; 
       break; 
      } 

     } 

     //Count occurences of "Parameters Table" for calculating ID 
     foreach (string word in backgroundWords) 
     { 
      if (word == "Parameters Table" && thereIsAVirtual) 
       countParametersTable = countParametersTable + 2; 
      else if (word == "Parameters Table" && !thereIsAVirtual) 
       countParametersTable++; 
     } 

     //Initialize ID 
     int ID = 1; 
     int IDforCounting = 1; 

     PrintData printDataObject = new PrintData(); 

     //Search for Parameters Table and perform operation on sub-array between strings 
     const string separator = "Parameters Table"; 

     // Get to the first separator 
     var cuttedWords = backgroundWords.SkipWhile(x => x != separator).Skip(1); 
     // Run as long as there is anything left to scan 

     int b = 0; 

     while (cuttedWords.Any()) 
     { 
      // Take data from the last found separator until the next one, exclusively 
      var variable = cuttedWords.TakeWhile(x => x != separator).ToArray(); 

      // Step through cuttedWords to update where the last found separator was 
      cuttedWords = cuttedWords.Skip(variable.Length + 1); 

      // Do what you want with the sub-array containing information 
      sortDataObject.SortDataMethod(variable, b); 



      //After searching for existence of one or more virtual parameters, print to file 
      if (sortDataObject.virtualPara) 
      { 
       if (!virtualParaUsed) 
       { 
        listOfNames = sortDataObject.findListOfNames(backgroundWords, ref IDforCounting, countParametersTable); 
       } 
       virtualParaUsed = true; 

       printDataObject.WriteFileVirtual(of.FileName, ID, sortDataObject.listNames[0], sortDataObject.listNames[1], 
        sortDataObject.unit, listOfNames, sortDataObject.virtualNames); 
       sortDataObject.virtualNames.Clear(); 

      } 
      else 
      { 
       printDataObject.WriteFile(of.FileName, ID, sortDataObject.listNames[0], sortDataObject.listNames[1], 
        sortDataObject.unit, sortDataObject.hexValue[0], sortDataObject.stringShift, sortDataObject.sign, 
        sortDataObject.SFBinary[0], sortDataObject.wordValue, sortDataObject.conversions); 
      } 

      //Calculate and send progressBar value 
      decimal sum = ((decimal)IDforCounting)/countParametersTable * 100; 
      int sum2 = (int)sum; 
      backgroundWorker1.ReportProgress(sum2); 
      ID++; 
      IDforCounting++; 
      b++; 

     } 
    } 

나는 다음과 같은 오류를 받고 있어요 :

가 이름 'backgroundWords'는 현재에 존재하지 않는 다음

내에서 Form1.cs의 섹션은 오류를 참조하는 것이 파일입니다 컨텍스트

이것은 'listOfNames'가

미리

에 감사 'thereIsAVirtual', 'countParametersTable', 그리고에 대해 반복
+0

여기서'backgroundWords'을 정의했는데, 어떤 선언도 볼 수 없습니다. – Habib

+0

어디서 모두 정의 되었습니까? 나열된 모든 변수에 대해이 메소드의 범위 내에서 정의 된 변수가 표시되지 않습니다. – tnw

+0

좋아, 그때 그들은 단지 정의 될 필요가 있다고 생각한다. 그게 몇 달 전에 떠났을 때 어떻게 그런 종류의 것이 쓰여지는지 상상할 수 없기 때문에 이상합니다. – user2340818

답변

0

의견과 본인의 의견은 모두 같은 방향을 가리키고 있습니다. 컨텍스트에 대해 변수가 선언되지 않았습니다. 이 경우 컴파일 전에 모두 구문 오류 (기본적으로 빨간색 구불 구불 한 선)로 표시됩니다. 게시 된 코드에서 나는 어떤 이유로 든 삭제 된 Form1 클래스 내의 개인 필드를 찾고 있다고 생각합니다.

+0

이것들은 부분 클래스 Form1에서 설계해야합니까? – user2340818

+0

귀찮은 방법 외의 변수를 사용합니까? 그렇다면 클래스의 필드로 선언하십시오. 그렇지 않다면, 그 방법으로 그들을 훔쳐 라. – bubbinator

관련 문제