トップページ > プログラム > 2016年06月24日 > UubPjCQV

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

5 位/197 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000021120001000000007



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net

書き込みレス一覧

ふらっと 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するか


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