質問です。
public struct data
{
public int[] ge; public double x;
public double ev; public string id;
}

data[] gen = new data[8];

method()
{
if(){
gen[4].ge=gen[1].ge; baf=gen[4].ge;
}
if(){
gen[4].ge=gen[2].ge; baf=gen[4].ge;
}

if(baf[a]==1) baf[a]=0;
else baf[a]=1;
}←ここの時点でのデバッグ時の質問です。

簡略化して書いてますがデバッグで値を追ってみたところ、
このようなときbaf[]の配列がgen[1].geやgen[2].geにも反映されてしまっています。
参照型や値型、クラスや構造体など調べてみましたが自分の力では
解決することができませんでした。
おかしなところあればご教示願います。