- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
335 :デフォルトの名無しさん[sage]:2016/06/24(金) 08:41:35.40 ID:UubPjCQV - GetDataはオーバーロードでいろいろな引数を受け取れるようになってる
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.idataobject.getdata(v=vs.110).aspx
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
336 :デフォルトの名無しさん[sage]:2016/06/24(金) 08:43:35.78 ID:UubPjCQV - あと
> formatはクラスオブジェクトでないといけないからフィールドやメソッドではダメ class Obj { public Type ThisType = typeof(Obj); } ThisTypeはフィールドだけどType型のオブジェクトだよ?
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
339 :デフォルトの名無しさん[sage]:2016/06/24(金) 09:18:19.68 ID:UubPjCQV - DataFormats.Textが返すオブジェクトは実はString型なんだ
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.dataformats.text.aspx
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
361 :デフォルトの名無しさん[sage]:2016/06/24(金) 10:24:37.49 ID:UubPjCQV - 最終的にやりたいことを、コンパイルできないので良いからコードにしてみてくれない?
// 初心者が迷い込みがちなアレだろうかなと何となく想像はつくけど
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
370 :デフォルトの名無しさん[sage]:2016/06/24(金) 11:29:54.22 ID:UubPjCQV - このコードで言えば、複数の型のオブジェクトが含まれているコレクションから、その型毎の要素数を数え上げたいと。
Dictionary<Type, int>を使えば数え上げの方は簡単。 Dictionary<Type, int> counts = new Dictionary<Type, int>(); foreach (var type in 型のリスト) counts[type] = 0; foreach (var item in オブジェクトのコレクション) counts[item.GetType()]++; > list[i]=(t)"123"; 問題はこっち。 "123"はString型だから、勝手に他の型にキャストすることはできない。何らかの方法で型変換を行う必要がある。 たとえば、対象の型がプリミティブ型のみなら、IConvertibleを使うとか。 あるいは、TypeDescriptor.GetConverter(Type)でTypeConverterを取得してConvertFromStringするとか。 逆に型変換さえ行ってしまえば、型情報はオブジェクト自身が持っているから、代入時にキャストする意味はない。全ての基底クラスであるobjectで十分。
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
376 :デフォルトの名無しさん[sage]:2016/06/24(金) 11:59:54.72 ID:UubPjCQV - > ジェネリックなのに自由に型を指定できないんでしょうか?
Tなんて名前の型、.NETのライブラリのどこにも定義されてないから。
|
- ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
387 :デフォルトの名無しさん[sage]:2016/06/24(金) 15:24:11.12 ID:UubPjCQV - Column1のDataColumn.DataTypeがStringなんだろ
SUMの中じゃCONVERTも使えないっぽいから 素直にColumn1の型を数値型にするか 列一個追加してExpression="CONVERT(Column1, 'System.Int32')"にして そっちでSUMするか
|