クラスインスタンスの列挙型の値を、<string, myClass>
の辞書に表示するかどうかに基づいて編集しようとしています。どのような私には理にかなっては、下記のコードスニペット行うことです。クラス内の列挙を編集する(メンバーはインスタンス参照でアクセスできません)
if (pumpDict.ContainsKey(ID))
{
foreach(KeyValuePair<string, PumpItem> kvp in pumpDict)
{
if(kvp.Key == ID)
{
kvp.Value.state = kvp.Value.state.Available; //error here
kvp.Value.fuelPumped = fuelPumped;
kvp.Value.fuelCost = fuelCost;
break;
}
}
}
else
{
PumpItem pump = new PumpItem();
pumpDict.Add(ID, pump);
}
そして、私のPumpItemsクラスのようなものである:
namespace PoSClientWPF
{
public enum pumpState
{
Available,
customerWaiting,
Pumping,
customerPaying
};
public enum fuelSelection
{
Petrol,
Diesel,
LPG,
Hydrogen,
None
};
class PumpItem
{
public double fuelPumped;
public double fuelCost;
public fuelSelection selection;
public pumpState state;
public PumpItem()//intialize constructor
{
this.fuelPumped = 0;
this.fuelCost = 0;
this.selection = fuelSelection.None;
this.state = pumpState.Available;
}
}
}
私はコンストラクタで列挙値を持っていることを信じるように導かれた、彼らクラス本体で宣言された列挙型の新しいインスタンスで、上記のように設定する必要があります。
私がやろうとしていることは論理的であることを、私には思えるが、私は述べて逢引の右側のエラーを取得しています:
「PoSClientWPF.pumpState.Availableにアクセスすることができないメンバー"
私はいくつかのフォーラムの中でこのエラーを探しましたが、静的変数を間違って呼び出すというエラーが見つかるようです。誰かが解決策の方向に私を向けることができますか?
ありがとうございます。
変更 'kvp.Value.state.Available使用することができます;' 'pumpState.Availableため;' –
を'kvp.Value.state = pumpState.Available'? – Quantic
本当に正しいですが、どうして私が間違った割り当てを自分で見つけられなかったのか分かりません。 – James