ふらっとVisual C#,C♯,C#(初心者用) Part111
■ このスレッドは過去ログ倉庫に格納されています
0258デフォルトの名無しさん
2014/04/27(日) 10:37:42.14ID:/A+wJ+qi「default(T)」は値なの?型なの?
(下記のコードがうまくいかない理由は?)
★状況
public class Range<T> where T : IComparable<T>
{
public T Begin { get; set; }
public T End { get; set; }
public bool Contains(T t)
{
return (Begin == default(T) || Begin.CompareTo(t) <= 0)
&& (End == default(T) || 0 < t.CompareTo(End));
}
}
Begin == defualt(T)のとこで「演算子 '==' を 'T' と 'T' 型のオペランドに適用することはできません。」
とか、表示されます。
T d = default(T);とか書いてみて、もちろんエラーは出ない。
さらに、if( Begin == d ) {...}とか書いてみると、 上記のエラー。
■ このスレッドは過去ログ倉庫に格納されています