2016-09-06 9 views
-1

として渡すことができませんforeachの反復変数 『C#が、私はこのエラーに遭遇したとき、私はEMGUCVとC#でプログラミングをしようとしていたREF

それは、このコードブロックに位置している『それがあるので、refまたはout引数として』currentFrameBlob」を

エラー2が通過することはできません』。

public void matchCurrentFrameBlobsToExistingBlobs(ref List<Blob> existingBlobs, ref List<Blob> currentFrameBlobs) 
{ 
    foreach (Blob existingBlob in existingBlobs) 
    { 
     existingBlob.blnCurrentMatchFoundOrNewBlob = false; 
     existingBlob.predictNextPosition(); 
    } 

    foreach (Blob currentFrameBlob in currentFrameBlobs) 
    { 
     int intIndexOfLeastDistance = 0; 
     double dblLeastDistance = 1000000.0; 
     for (int i = 0; i <= existingBlobs.Count() - 1; i++) 
     { 
      if ((existingBlobs[i].blnStillBeingTracked == true)) 
      { 
       double dblDistance = distanceBetweenPoints(currentFrameBlob.centerPositions.Last(), existingBlobs[i].predictedNextPosition); 

       if ((dblDistance < dblLeastDistance)) 
       { 
        dblLeastDistance = dblDistance; 
        intIndexOfLeastDistance = i; 
       } 
      } 
     } 

     if ((dblLeastDistance < currentFrameBlob.dblCurrentDiagonalSize * 0.5)) 
     { 
      addBlobToExistingBlobs(ref currentFrameBlob, ref existingBlobs, ref intIndexOfLeastDistance); 
     } 
     else 
     { 
      addNewBlob(ref currentFrameBlob, ref existingBlobs); 
     } 
    } 

私はこのエラーについて読んだので、これはC#のそれらの癖の1つであると思われます。このタイプのエラーを処理する最も効率的な方法は何ですか。今私はそれを悪化させることなく解決する方法についてはほとんど考えていないので、変更を加えることを非常に恐れています。

+6

最初の質問にはお答えします - あなたは本当に、参照することにより、これらの事を渡すことが必要なのですか? –

+0

私の神様、あなたはどこでも 'ref'を使っています –

+0

' ref'を読んで、それらを使う方法とタイミングを表示します。 'existingBlobs && currentFrameBlobs'をどこでどのように宣言していますか?それらを 'ref 'として宣言する必要があります – MethodMan

答えて

-3

最も簡単な修正:

foreach (Blob currentFrameBlob2 in currentFrameBlobs) 
{ 
    Blob currentFrameBlob = currentFrameBlob2; 
    //.... 
+0

はい、しかし実際の質問は、OPが何かをrefで渡していることです。なぜなら、OPは 'refキーワードin msdn 'を読むべきです。 – MethodMan

+0

しかし、それは彼が求めていたものではありませんでした。彼は大きな変化を恐れていました。 –

+0

少なくとも、2997年に退職したC#winformsプログラマーがY3kの問題を解決するのを探し始めるまで、恐れてプログラミングすることはありません。 –

関連する問題