2017-02-07 18 views
-1

これは構造体である:それは、コールバック関数の内部で使用されている構造体(配列内部)を操作する方法は?

public struct ProfilePoint 
{ 
    public double x; 
    public double z; 
    byte intensity; 
} 

それが意味することはありませんので、(私はそれのほとんどを削除し、そこにあるループのためのものだったすべてのポイント(arrayIndex)を循環。表面上を走査し、それらを処理結果)profileBuffer内に格納されている:

public static void onData(KObject data) 
      { 
       if (points[arrayIndex].x != -32768) 
             { 
              profileBuffer[arrayIndex].x = 34334; 
              profileBuffer[arrayIndex].z = 34343; 
             validPointCount++; 
             } 
             else 
             { 
              profileBuffer[arrayIndex].x = 32768; 
              profileBuffer[arrayIndex].z = 32768; 
             } 
            }    
           } 

IはprofileBuffer X & Z(両方の配列)内のデータを処理したいです。

これまでのところ私は、Visual StudioからエラーなしでprofileBufferから一つの値を取得する関数を作成する "こと" だった:)(onDataハンドラ中に、

ProcessProfile(profileBuffer[1].x); 

public static int ProcessProfile(double dataProfile) 
{ 
    int test=1; 

    return test; 
} 

は、このラインを置きますエラーは発生しませんが、それは単なる値です。理想的には、私は配列全体を持っていたいと思います。私を混乱させるのは、profileBuffer内に格納されているすべての値がdouble(強度を忘れる)だということです。しかし、配列に格納されます。しかし、私はProcessProfile(profileBuffer.x)のようなデータをインポートすることはできません。私はインデックスを指定する必要があります...データのベクトル(ライン)を操作することは可能ですか?それは私にとって理想的です。

申し訳ありませんが、説明が貧弱/長い投稿...私は全く新しいです。

+0

しますか? Googlingしようとすると –

+0

'ProfileBuffer'はあなたのケースやコレクションの配列なので、それをインデックス化したりアイテムを取得してから' .x'を呼び出す必要があります。 'x'はあなたのコレクションのプロパティやフィールドではないので、' profileBuffer.x'を呼び出すことはできません – CodingYoshi

+0

そして、あなたの質問はあなたが達成したいと思っているかどうか明らかではありません – CodingYoshi

答えて

1

あなたはちょうど `foreach`ループが必要です

public static int ProcessProfile(ProfilePoint []points) 
{ 
    var x = points[4].x; 
..... 
} 

を必要と

ProcessProfile(profileBuffer); 
関連する問題