0
私は値を格納するクラスを持っています。C#で演算子を取得する方法
public class Entry<T>
{
private T _value;
public Entry() { }
public Entry(T value)
{
_value = value;
}
public T Value
{
get { return _value; }
set { _value = value; }
}
// overload set operator.
public static implicit operator Entry<T>(T value)
{
return new Entry<T>(value);
}
}
このクラスを利用するには、次の
public class Exam
{
public Exam()
{
ID = new Entry<int>();
Result = new Entry<int>();
// notice here I can assign T type value, because I overload set operator.
ID = 1;
Result = "Good Result.";
// this will throw error, how to overload the get operator here?
int tempID = ID;
string tempResult = Result;
// else I will need to write longer code like this.
int tempID = ID.Value;
string tempResult = Result.Value;
}
public Entry<int> ID { get; set; }
public Entry<string> Result { get; set; }
}
私は "= 1 ID" を行うことができますstraightaway集合演算子をオーバーロードすることができますよ。
しかし、私が "int tempID = ID;"を実行すると、エラーが発生します。
get operatorをオーバーロードして「int tempID = ID;」を実行する方法代わりに "int tempID = ID.Value;"?
あなたはそれがintを等しくすることができるように、エントリ・タイプに演算子を追加する必要があるとしています。 –
さて、私がコメントを残すとすぐに、誰かが例を投稿します。笑 –