カスタムジェネリック構造体の変換演算子をオーバーライドしてイベントを手動で呼び出すことなく 'プロパティライクな'動作をエミュレートできます。 次は私のソリューションです:
public struct column<TType>
{
private TType _value;
private column(TType value) : this()
{
_value = value;
}
private void Set(TType value)
{
// Implement your custom set-behavior...
}
private TType Get()
{
// Implement your custom get-behavior...
return _value;
}
public override string ToString()
{
return _value.ToString();
}
public static implicit operator column<TType>(TType p)
{
column<TType> column = new column<TType>(p);
column.Set(p);
return column;
}
public static implicit operator TType(column<TType> p)
{
return p.Get();
}
}
私は、変換エラーから避けるために、一般的なパラメータで構造体を宣言します。
public class Test
{
public column<int> kKey;
public column<float> dMoney;
public column<string> cValue;
public Test()
{
kKey = 42;
dMoney = 3.1415926f;
cValue = "May the force be with you!";
}
}
...私は知っていますが、質問は時代遅れですが、将来的に誰かを助けるかもしれません。
もう1つ興味深いアプローチです。私の答えを見て、それも実行可能かどうかを見てください。あなたの評判があなたに先んじてあなたの意見を評価します。多分重すぎますか? –