トップページ > プログラム > 2014年04月27日 > /A+wJ+qi

書き込み順位&時間帯一覧

27 位/181 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000201000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
258
ふらっとVisual C#,C♯,C#(初心者用) Part111

書き込みレス一覧

ふらっとVisual C#,C♯,C#(初心者用) Part111
258 :デフォルトの名無しさん[]:2014/04/27(日) 10:37:42.14 ID:/A+wJ+qi
★質問したいこと
「default(T)」は値なの?型なの?
(下記のコードがうまくいかない理由は?)

★状況
public class Range<T> where T : IComparable<T>
{
&nbsp; &nbsp; public T Begin { get; set; }
&nbsp; &nbsp; public T End { get; set; }
&nbsp; &nbsp; public bool Contains(T t)
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; return (Begin == default(T) || Begin.CompareTo(t) <= 0)
&nbsp; &nbsp; &nbsp; &nbsp; &amp;&amp; (End == default(T) || 0 < t.CompareTo(End));
&nbsp; &nbsp; }
}
Begin == defualt(T)のとこで「演算子 '==' を 'T' と 'T' 型のオペランドに適用することはできません。」
とか、表示されます。

T d = default(T);とか書いてみて、もちろんエラーは出ない。
さらに、if( Begin == d ) {...}とか書いてみると、 上記のエラー。
ふらっとVisual C#,C♯,C#(初心者用) Part111
259 :258[]:2014/04/27(日) 10:39:06.66 ID:/A+wJ+qi
>>258
あれっ!HTMLエンコードしすぎちゃった!
ふらっとVisual C#,C♯,C#(初心者用) Part111
265 :258[]:2014/04/27(日) 12:48:31.67 ID:/A+wJ+qi
>>261-264
とりあえずこうしてみます。
>>263案で。
みんなありがとう。
public class Range<T> where T : IComparable<T>
{
public T Begin { get; set; }
public T End { get; set; }
public bool Contains(T t)
{
return (object.Equals(Begin, default(T)) || Begin.CompareTo(t) <= 0)
&& (object.Equals(End, default(T)) || 0 < t.CompareTo(End));
}
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。