Generics 値型?
2007/11/16
Genericも真面目に勉強しないとです。
引数の値がDBNull.Valueだったら、nullを返すようなメソッドを書いてみたけど、
public static Nullable<T> ConvTDBNullToNull<T>(object o) { if (o is DBNull) return null; return (T)o; }
エラーが出てコンパイルできませんでした。
型 'T' は、ジェネリック型のパラメータ 'T'、またはメソッド 'System.Nullable<T>' として使用するために、Null 非許容の値型でなければなりません
値型以外では、適応しないことをコンパイラに教えてあげればよさそうなんですが、どうするんだろう。
<T extends ValueType>みたいなことができるのかな。
追記
この辺かな。
http://msdn2.microsoft.com/ja-jp/library/d5x73970(VS.80).aspx
http://www.atmarkit.co.jp/fdotnet/special/generics01/generics01_03.html
public static Nullable<T> ConvTDBNullToNull<T>(object o) where T : struct { if (o is DBNull) return null; return (T)o; }
エラーは出なくなった。(他の大きな修正中なので動作確認できてないですが)
でも、structという指定で、値型の指定の意味になるんだろうか。
たぶんさらに追記する。
相変わらずの研鑽ぶりに脱帽です。
さすが先生…
今はJAVAは離れてVBっ子に戻ってしまいましたが、また機会があれば勉強したいと思います。
頑張ってください☆
今の会社に希望の光は感じられません…w
今は「VB6っ子」だっけ?
.net2.0なら↑の話関係してますよ。
> 頑張ってください☆
お互いさまでしょ?
#「研鑽」なんて言葉しらなかった。読めないし。gooに教えてもらいました。