1 名前:デフォルトの名無しさん [2015/09/26(土) 21:43:29.25 ID:Eb5jOjH8.net] ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1437808445/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。
152 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 23:04:21.79 ID:e5VIXU4j.net] ほうほう、ではなぜ Object[] a = new Strin[1]; ができるのですか
153 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 23:12:03.39 ID:pwM6df0l.net] >>152 知らん
154 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 23:16:57.36 ID:pwM6df0l.net] object[] o = new string[1]; o[0] = new object(); 出来たけど起動したらパソコンぶっこわれた
155 名前:デフォルトの名無しさん [2015/10/13(火) 00:46:06.78 ID:AkH9qfzr.net] >>151 いや、できるだろ。 指定型じゃないobjectをaddしたら例外吐くと思うが。 ジェネリックの共変性とかでできなくなったのか?
156 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 00:56:55.40 ID:rx5Up+1Q.net] List<object> は object 型じゃないから、違う型である List<hoge> を代入出来ないだけじゃねーの。 だから、 object list = new List<hoge>; とか、 List<object> list = new List<object>; list.Add( new Hoge() ); とかは出来るんじゃね?
157 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 07:14:34.67 ID:IPzu3dLL.net] ジェネリックの共変や反変を使用するには 型パラメータにそれぞれin、outを指定する必要がある inやoutはインターフェースまたはデリゲートにしか指定できない また、inまたはoutを指定した型パラメータはそれぞれ引数(入力)または戻り値(出力)にしか使えなくなる たとえばIReadOnlyList<out T>やIEnumerable<out T>などの読み取り専用インターフェースはout Tなので List<hoge>をIReadOnlyList<object>やIEnumerable<object>にキャストしたりすることはできる
158 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 18:40:15.12 ID:1yUdPEbp.net] 配列の共変性は例外
159 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 14:19:58.33 ID:roB5XZwg.net] >System.InvalidOperationException: シーケンスに、一致する要素は含まれてません なんで会話体なんだよw ぐぐったらぐーぐるさんに もしかして シーケンスに、一致する要素は含まれていません って怒られたわ
160 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 19:23:17.82 ID:plKY4Q25.net] ちょっと聞きたいんだがシリアル通信で対向側から100バイト分の
161 名前:データが送られてきたときに100バイト取得出来るときと40バイト60バイトみたいに複数回に分けて送られてくるのはなんでなの? [] [ここ壊れてます]
162 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 20:48:58.18 ID:3PxZRlNz.net] >>160 知るかよw どんな質問だよw
163 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 20:52:27.20 ID:R/ItuJii.net] >>160 メーカーに聞きなよ つかC#関係ないじゃん
164 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 21:15:23.90 ID:3PxZRlNz.net] >>160 場違いな質問だけどまあちょっとだけフォロー。 今時シリアルポートが付いてるPCの方が少なくと思うからどうせUSB-シリアルの変換ブリッジ経由のアクセスだと思うけど、 USBはRS-232Cと違ってパケット単位の送受信になるから、アクセスの仕方によっては 見かけ上そのように見える可能性はあると思う。 まあ、たぶんこれは考え過ぎで関係ない。 恐らくデバイス側の仕様の線だろう。
165 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 22:14:59.79 ID:cazvS2P7.net] >>160 シリアル通信には『40バイト60バイトみたいに複数回に分けて送られ』 などという考えはありません。 まず「シリアル」通信とはどのような考えの通信なのかを勉強し直してください。
166 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 22:50:13.49 ID:0i22usD/.net] シリアル通信自体にはなくても、 シリアル → OS のバッファ → ファイルハンドル経由で受信 とかしてれば OS のバッファからはき出すタイミングと ファイルハンドル経由で読み取るタイミングとの関係で途中で切れることもあるんじゃね。 163 の言ってる USB のパケ単位の受信でも同じ要領なんだろうし。(たぶん)
167 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 23:09:35.66 ID:3PxZRlNz.net] まあ厳密に言えばUSBだって物理層レベルではただのシリアル通信だし、 232Cだって少なくともPCでは、一番下の水準だってハードウェアバッファに対してまとめて読み書きしてる だけなんだけどさ。
168 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 23:50:33.81 ID:GlsuvrM1.net] 40バイトしか届いていない瞬間に読み出せば 40バイトしか読みとれないだろう それを「複数回に分けて送られてくる」とは言わないぜ 100バイト届いているのに40バイトしか読みとれないことは考えにくい
169 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 00:03:40.24 ID:A8PPNIqS.net] FTDIってUSB-232Cの変換ブリッジICのメーカーのドキュメント見たら バルク転送のパケットのペイロードの64byteのうち、2バイトはシステム(FTDIのICとドライバーの間のやりとり)が使って 残りの62バイトが正味のペイロードみたいだから、>>163 に書いたような理由かもしれんね。 www.ftdichip.com/Support/Documents/AppNotes/AN232B-04_DataLatencyFlow.pdf
170 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 00:30:04.83 ID:KAwMDrmB.net] と言うか、基本はデータ長を識別出来るようにして送った上で、 データ長分のデータをきちんと受け取ってから処理するようにすれば済む話で、 普通はそういう風に実装するよな。 パケ通信とかでもこの手の質問はよく挙がる。
171 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 08:14:43.34 ID:w2ONMRNp.net] ソリューションエクスプローラで、自分で作成したフォルダを右クリックして 追加-クラスで新規作成すると、namespace プロジェクト名.Class って拡張子(.Class)がついてしまうんだけど、これならないように設定できないの?
172 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 09:13:29.49 ID:IIEWzpZc.net] 拡張子ちゃうで
173 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 21:29:35.57 ID:oF9r0LvQ.net] >>170 ttp://stackoverflow.com/questions/3317141/automatically-add-namespace-when-adding-new-item これと逆のことをすればいい
174 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 23:51:28.24 ID:iL1w7ncH.net] 特定メソッドのオーバーロードが用意されている型のみを引数で受け取ることは出来ませんか?
175 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 23:56:16.88 ID:/26VfrL0.net] >>173 何を言ってるのか全然わからない
176 名前:デフォルトの名無しさん mailto:sage [2015/10/16(金) 23:59:55.94 ID:iL1w7ncH.net] static int hoge(a args); static int hoge(b args); static int hoge(c args); という関数があったとすると static int f(hoge() args){ return hoge(args); } みたいな事は出来ないかなと思って
177 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 00:03:58.16 ID:XvNYZLvx.net] ジェネリックを使えばよいんじゃね?
178 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 00:35:45.30 ID:FN3G7dO/.net] static int f<T>(Func<T, int> hoge, T args) だな
179 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 00:41:26.06 ID:XvNYZLvx.net] C#のことは全然知りませんが static int f<T>( T args ) { return hoge( args ); } これではダメなんですかね?
180 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 08:22:48.75 ID:bMkc0D2x.net] 独学なので教えて欲しいのだけど メソッド書いたときにほとんどの場合returnに戻り値を付けずにクラスのフィールド値を書き換えて すませているんだけど、パフォーマンス的にそれでもいいの? 書き方の作法として、できるだけ戻り値で返してフィールドに 値を残さないとかそういうものってあるのかな
181 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 10:58:03.82 ID:/9+8IY9r.net] パフォーマンスを聞きたいのか作法を聞きたいのか焦点がぼけてる
182 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 10:58:33.71 ID:TCTaTEQd.net] 作法というかメソッドの目的による。 object.ToString が文字列を返さないとか、object.setValue が値を返すがフィールドを変化させないとかが合理的だろうか?
183 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 11:01:30.64 ID:t8SS3rgX.net] すごい、こんぽんてきなところで、C#とまったくむかんけいなしつもんだ…
184 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 12:36:32.28 ID:NrGyflQ0.net] >>179 「C# プロパティ」で検索するときっとピッタリのものが見つかる
185 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 17:25:02.26 ID:vLvdh1RP.net] 自動実装プロパティだとJITが最適化してくれるからほぼフィールドアクセスと変わらない。 というか、その程度、気にしたところで誤差の範疇でしかないだろ
186 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:39:25.56 ID:DYiNz1wT.net] ASP.Netが今度色々今っぽいグラントとか載るみたいやけど 皆々様はウェッブ開発はC#とNodeならどちらが樂ですか? ASPでフロントにReactjs使ってる人、いるのかなあ。日本語のやってます情報ひとつもない
187 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:50:00.22 ID:/9+8IY9r.net] nodeはようやくLTSが出たばっかりだし C#を使ってるくらいだから「ようやくプロダクション時の候補として選べるな」くらいに思ってんでは
188 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:52:42.76 ID:QYO898Dn.net] web入門にはnodeの方が取っ付きやすいだろう aspは通信処理が隠蔽され過ぎてて初心者にはかえって入り難いと思う
189 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 21:05:51.44 ID:6ZAFfyFg.net] >aspは通信処理が隠蔽され過ぎてて 例えば?
190 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 21:12:22.08 ID:vLvdh1RP.net] ブラックボックスになってて、裏側で何してるかわかりにくいってことだろ
191 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 15:01:52.95 ID:EVhgfJB8.net] >>160 遅いけども serialPort1.ReadBufferSize の、値を大きくしてみ
192 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:18:31.37 ID:IMT9I6Q/.net] >>190 そんなの無関係。 受信バッファをオーバーフローしたデータは単に捨てられるだけ。
193 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 16:22:15.21 ID:IMT9I6Q/.net] ああ、フロー制御された場合を想定してるのか。 一応ありうるけど可能性は低いな
194 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 06:05:58.46 ID:GwYAWrq0.net] オブジェクトの初期化(フィールドの復元)は、コンストラクタで行うべきだと痛感した。 このオブジェクトの通常のsetプロパティーを使って、初期化(フィールド復元)コードを作成したら、 妙なバグに悩まされて、6時間!(見当をつけたメソッド内に、デバッグ用の変数をあちこちに設置して、ようやく見つけた。) この通常のsetプロパティの正常な動作は、同じgetプロパティーに依存するようになっていた。(自分でそのように作っていた) 以下、バグ発生の仕組み↓ 1、setアクセサで「プライベート変数を初期化」しようとする。これが目的である。(プライベート変数は初期化できていない。) 2、setアクセサ内には、getアクセサ経由で「同プライベート変数」に依存するコードが存在している。ところが、この変数はまだ初期化されていない。 3、初期化されていない変数の影響で、setアクセサがおかしい動作をする。(変数は初期化されないまま。)!バグ発生! もし、ここで、コンストラクタを使って、直接プライベート変数を初期化していたら、こんなことにはならなかった。 そしてオブジェクトにアクセスして、setアクセサでさらに値を変更しても、 たとえsetアクセサ内でgetアクセサに依存するコードがあったとしても、動作していた。 長くなりましたが、おねがいします。 (1)setアクセサ内で、同じプロパティのgetアクセサに依存するコードを書くことは、良くないんでしょうか。禁則に当たりますか? (2)オブジェクトの初期化は、絶対に、コンストラクタで行うべきでしょうか。 (3)熟練プログラマは、デバッグせずとも、エスパーでバグの住処を言い当てられるのでしょうか。 (「思い込み」から逃れられずに、早々に詳細なデバッグをかけず、結局6時間もかかってしまいました。) (4)バグが、VisualStudioで開いている方のプロジェクトでなくて、 別のソリューションでビルドされたdllファイルに閉じられたクラスに存在する場合、 デバッグをかけるために、わざわざ別ソリューションのその対象のクラスのみをこちらのプロジェクトにコピー&ペーストして一度統合するしかないんでしょうか。
195 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 07:36:25.62 ID:FoOVnDir.net] >>193 問題を履き違えている (1) プロパティに限った話ではない。 今回「デバッグに時間がかかった」のは別のメソッド(getter)経由で未初期化フィールドを参照していたことに 気づかなかったためであり、同じプロパティのgetアクセサに限らず一般のメソッドであっても 「同プライベート変数」でなくても問題は発生しうる。 結局自分の書いたコードの動作を理解していないことが原因であって、規則で縛ってどうにかなる問題ではない。 (2) 問題の本質ではない。絶対に、動作を自分で理解していないコードを書かないこと。 とはいえ常に最小粒度の命令レベルまで全て把握しろというのは無理な話なので、 理解しやすくするためにカプセル化や不変オブジェクトなどの様々な手法が存在する。 コンストラクタでまとめて直接初期化する方が理解しやすいのならそうすればいい。 (3) エスパーできるかどうかは経験の問題だが、デバッグするにしてもコードの各地点でそれぞれ どういう状態になっていてほしいのかを正しく理解していれば問題箇所の特定は機械的にやれるはず。 そのとき把握する必要のある情報の範囲が狭いほどデバッグは容易なので、 一般的にはなるべくそれを局所化するのがデバッグしやすいコードを書くコツ。 (4) pdbファイルがあればデバッグ可能。
196 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 08:00:05.12 ID:VM5bh9Hg.net] 名前空間を複数形にするかどうかはどうやって決めればいいですか?
197 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 13:10:38.44 ID:7JhC24+l.net] プロパティ内で色々やらせるのはよくないよな 例外処理できないし
198 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 15:02:38.35 ID:+AiXCDdV.net] なんで例外処理できないと思った?
199 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 12:04:22.22 ID:/s9N4mON.net] >>179 パフォーマンスも保守性も可読性も最悪 どうしても必要でなければオブジェクトの状態を更新してはならない
200 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 17:04:51.29 ID:dOGyJCjw.net] >>179 クラス内で使い回すからそうしているんだろうけど、そのメソッドを利用する側はどういう結果を出されたかわからないわけです。まあフィールドを見ればわかるけど。それにクラスを分離しようとするときもフィールドに依存していると面倒なことになる
201 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 17:17:56.73 ID:qC5jNYSK.net] >>199 問題を混同してるな。 それは本来必要のないはずのフィールドを持っちゃった場合の問題。 否定的な意見が多いけど、フィールドなりプロパティなり保持してるデータを更新するのに、 _hoge = GetHoge(); だろうが UpdateHoge(); だろうが同じこと。 前者の方が分かりやすいとかそんなことないよ。
202 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 17:29:30.83 ID:tJFEMZX0.net] そもそも更新する必要があるのかは一考するべきだけどな。 更新することが目的ではなくて、その更新された結果を使って何かをするのが目的なんだろ? なら更新しなくてもその「何か」をするメソッドを直接呼び出せばいい。 そういう考え方を理解すると、プロパティや状態更新はかなり少なくできるようになるよ。
203 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 18:03:13.79 ID:wB/X7nCW.net] 本人不在なのによく問題や目的を断定したりできるっすね 妄想力旺盛なようで羨ましい
204 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 18:17:39.17 ID:qC5jNYSK.net] なるほど、お前さんの読解力の欠如の問題とは思わないんだ。 まあ、確かに質問者は>>200 に書いたように2つの問題を混同している可能性がある。 というか、まあたぶんそうだろう。 恐らく本当に知りたいのは戻り値を返さないメソッドの是非じゃなくて、 保持する必要のない一時データをフィールドで持つことの是非だろう。 こんなのはもちろん非に決まってる。
205 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 18:56:14.20 ID:wB/X7nCW.net] その「たぶん」をいいたいが為に何分掛けたんすか? 君の人生って安いんだね
206 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 19:01:56.68 ID:Qmn5VnV2.net] 休みの日に複数スレで煽りを入れているような人間が 一体誰を馬鹿にできるんだろうか? 底辺君
207 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 20:21:21.69 ID:n9apvFnD.net] メソッドの戻り値で返す場合がしっくりする文脈もあるし、 メソッドがオブジェクトのフィールドの状態を変更して済ませた方が良い場合もあると思う。 対外的な文脈においては、戻り値で返す方がわかりやすいと思う。 自販機(オブジェクト)で言えば、ボタン(メソッド)を押せばジュース(戻り値)が出てくるような感じ。 そして、ジュースが売れたという事実は、自販機内のフィールドに記述される。
208 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:24:05.60 ID:dOGyJCjw.net] >>200 Updateてメソッド名で戻り値がないなんて気持ち悪くて使いたくないな。
209 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:34:23.98 ID:dOGyJCjw.net] 自分が初心者の時を振り返ってみると ひとつのクラスでなんでも済ませようとしたり、役割分担ができてないのが原因。恐らくそのクラスにあるのがおかしいメソッドだと思うよ。
210 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:40:26.57 ID:fd/dB9hc.net] 更新するメソッドで戻り値がないのはよくあるだろ 返すとしたら更新したかどうかのフラグとか?
211 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:06:00.58 ID:7oDBCbbL.net] >>207 Updateって単語から、更新すべき値が返ってくるとはあまり考えないな。 更新結果がbool値で返って来るのなら予想するけど。
212 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:09:00.78 ID:e8QLZtXl.net] >>206 今回の場合その例えで言うと、ボタンは自販機の内側にあって外部から押せない状態で、 出てくるはずのジュースも自販機のどこかに落ち込んでるんだと思うよ。 だから自分でも違和感があるんでしょうよ。 それにパフォーマンスとかなんで初心者が考えるんだろうね。そんなこと考えるのはまともに動くアプリができてからやればいいのにって思いまーす。
213 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 00:20:54.69 ID:e8QLZtXl.net] 最初の頃はカプセル化が理解できなかったな。実際全部自分で作っているわけだし内部構造も把握しているわけで、クラス利用する側も利用される側も全部自分なので発想の切り替えがなかなかできなかったよ。
214 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:39:21.40 ID:1HXJB/EU.net] オブジェクト指向なんて学ぼうとしてはいけないと思うわ。 継承とかカプセル化とか、ある程度、複雑なものを作るときに初めて存在価値に気付くわけだし。
215 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:42:50.05 ID:A/yOhDl2.net] ゴッドクラスを一つ作れば何も問題ない 神に任せれば何でもやってくれる
216 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 17:55:25.32 ID:B7WANnu5.net] >>214 物が落下することを考える場合、 オブジェクト指向で、「物」に落下という動きを実装するのが一般的だと思う。 しかし、実際は、重力によって「物」が加速させられたわけだから、「地球」オブジェクトの重力イベントに、 各「物」のイベントハンドラーを登録する必要がある。 ゴッドは、ラッパーなんですか?
217 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:03:56.15 ID:4FhC3Gim.net] >>215 物理シミュレーションなら あらゆる「物」の相互作用を「神」が計算して「物」の「力」プロパティを更新 それによって発生する「物」の変位を「物」の更新メソッドで求めて位置を更新 という流れになる
218 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:11:18.28 ID:l/fL5071.net] そこまで神が計算をするなら >「物」の変位を「物」の更新メソッドで求めて位置を更新 もはや、これも「神」が計算すりゃ良くね?
219 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:13:42.25 ID:UpnA5iMK.net] 世界をシミュレートするには世界の外に出ないといけない
220 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:15:10.75 ID:MI/upuKE.net] なんだかアホな話になってるけど、三体問題って聞いたことないのかな
221 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:29:46.19 ID:4FhC3Gim.net] >>217 力まで求められてるなら変位はオブジェクト自身の性質(質量や慣性モーメント)のみで決まるからオブジェクト自身に持たせてもいい
222 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:45:02.54 ID:ip/vnDdd.net] くだらない話をしているうちに 文明はどんどん発達していく…
223 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:49:08.47 ID:4coy8BX6.net] 文明(笑)
224 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 19:52:20.96 ID:B7WANnu5.net] >>219 神でなければ実装できない処理の話のことですよね
225 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 20:38:05.14 ID:1HXJB/EU.net] 神は神でも邪神だろw
226 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 20:54:13.91 ID:ruGH96NV.net] どっちかというと貧乏神‥
227 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 00:28:32.09 ID:i/Pr50pl.net] 異教徒どもめ
228 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 17:46:22.69 ID:xjXQWbVB.net] コンボボックスのコレクションに動的に追加するのに、xmlを利用して設定ファイルとして作っておいて 読み込ませた後、いままではプロパティの値を一つ一つAddしてたんだけど、 項目が200ほどあるので格納用クラスのプロパティを配列に入れて一気に回したい プロパティを配列に一気に入れるには何か方法がありますか? (プロパティ名は連番をつけている Item001 Item002・・・)
229 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 18:16:00.37 ID:sDzKh5al.net] >>227 それは、こんな感じのクラスがあるということか? class Hoge { public string Item001 { get; set; } public string Item002 { get; set; } .... public string Item200 { get; set; } } 非効率だがリフレクションでやれないこともない var tmp = new Hoge(); var items = tmp.GetType().GetProperties() .Where( x => x.Name.StartsWith( "Item" ) ) .Select( x => x.GetValue( tmp ) ) .OfType<string>() .ToArray();
230 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 18:37:39.63 ID:AF18ul7Z.net] >>227 問題はそこじゃないだろ <items> <item>a</item> <item>b</item> <item>c</item> ・・・ </items> こういうxmlにして、読み込む段階でコレクションとして読めばいいだけのこと
231 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 18:44:38.34 ID:LyVSHq6d.net] >(プロパティ名は連番をつけている Item001 Item002・・・) (ノ∀`)アチャー
232 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 19:07:33.01 ID:iNYJ0klc.net] 俺はむしろLINQ使った方が読みやすいと思うがなあ。メソッド式の方ね。
233 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 19:45:43.85 ID:lOeUxmUq.net] PropertyInfo[] info = obj.GetType().GetProperties();
234 名前:227 mailto:sage [2015/10/28(水) 00:46:39.63 ID:xiejTC4w.net] みなさんレスどうもです >>229 Listで一気に読みこませて無事コンボボックスに設定できました
235 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 02:28:55.47 ID:EDNJzsKV.net] プロパティ200個って… 正気の沙汰ではない
236 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 18:14:23.99 ID:rjKxrYR0.net] 業務システムではよくあること。 プログラミングの目的がプログラミングの人には信じられないかもしれないが。
237 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 18:30:25.71 ID:3nTbM/Mv.net] あーこれはキリッってつけたくなるレスだわ 我慢できない プログラミングの目的がプログラミングの人には信じられないかもしれないが。キリッ
238 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 18:41:16.23 ID:j5VggJ8Q.net] 未だに .NET 1.1を使ってそうだなw
239 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 20:22:26.76 ID:lvqGKJHt.net] >>219 何だよそれ?
240 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 20:40:08.70 ID:3nTbM/Mv.net] >>238 宇宙に2つの星しかないとする そうするとニュートン力学で簡単に振る舞いを記述できる しかし星が3つ4つと増えていくと互いに及ぼす重力の影響の計算が複雑になっていって 事実上計算不可能になるという問題のこと
241 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 20:51:44.91 ID:8s7NCB3J.net] いやム板的には余裕で計算できるぞ 解析的に解けないだけだ
242 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 21:06:10.72 ID:Q/PXF6pR.net] >>219 つまりジェットストリームアタックはかわせないって事?
243 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 22:58:34.15 ID:zTRdryA5.net] 滑ってて悲しいね
244 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 00:29:14.00 ID:pm6XZBWM.net] お前は踏み台にされたんだよ
245 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 08:50:32.75 ID:D2KeTagd.net] さすがドム 滑りだけは上手だ
246 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 11:20:17.03 ID:nhE9MuJP.net] ドム板だったのか
247 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 15:05:47.50 ID:VvBy2VYR.net] >>240 そこまでは、神は与えなかったんですね。 「計算機でも作って、回せなww」
248 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:53:19.69 ID:iqPkH1iD.net] オブジェクト指向は必要ないとかいって aspx.csファイルのコードが30Kstepのプログラム作ってるやつ
249 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:57:36.78 ID:9dOg6vGq.net] 少数精鋭でまともに作ったら数分の1の工数でできちゃうことが客にバレたら業界が崩壊するからな 世の中クソコードのおかげでうまく回ってるんだからそれでいいんだよ
250 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 10:36:19.05 ID:e1qJyonr.net] linuxはいまだにcなんだろ オブジェクト指向に移行したらいいのに
251 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 11:44:17.28 ID:8yFkftFr.net] 以下、LinusによるC++罵倒文禁止
252 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 08:06:06.56 ID:c5cJUF33.net] 実行時に動的に読み込むアセンブリにある型をAssemblyクラスのGetTypeではなく TypeクラスのGetTypeで取得する方法はありますか?