[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part141 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part141 http://mevius.5ch.net/test/read.cgi/tech/1544839627/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
200: デフォルトの名無しさん (ラクッペ MMe5-U0tG) [sage] 2019/01/08(火) 09:49:22.14 ID:Sw3FA19SM >>197 配列をnewしただけで中身のTimerをnewしてないからじゃないの http://mevius.5ch.net/test/read.cgi/tech/1544839627/200
201: デフォルトの名無しさん (ラクッペ MMe5-U0tG) [sage] 2019/01/08(火) 09:53:57.24 ID:Sw3FA19SM まずデバッグ実行することを覚えた方がいい気がしないでもない http://mevius.5ch.net/test/read.cgi/tech/1544839627/201
202: デフォルトの名無しさん (ワッチョイ a994-mHCk) [sage] 2019/01/08(火) 12:12:53.32 ID:+TBsMqqs0 >>200 まさにそれでした。 1行加えただけで解決しました。ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/202
203: デフォルトの名無しさん (ワッチョイ 8901-gZzt) [sage] 2019/01/09(水) 07:23:03.10 ID:fI4baLQf0 本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか もしくは使い分けがあるのでしょうか http://mevius.5ch.net/test/read.cgi/tech/1544839627/203
204: デフォルトの名無しさん (スッップ Sd33-wlHu) [sage] 2019/01/09(水) 07:48:48.51 ID:c4aAB3Aqd >>203 ここC#スレやで http://mevius.5ch.net/test/read.cgi/tech/1544839627/204
205: デフォルトの名無しさん (ワッチョイ 8901-gZzt) [sage] 2019/01/09(水) 12:18:51.14 ID:fI4baLQf0 >>204 C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして http://mevius.5ch.net/test/read.cgi/tech/1544839627/205
206: デフォルトの名無しさん (スッップ Sd33-wlHu) [sage] 2019/01/09(水) 12:21:16.40 ID:c4aAB3Aqd >>205 c#にもimportはあるから余計混乱するだけ 名前空間とusingsは全然用途違うでしょ? http://mevius.5ch.net/test/read.cgi/tech/1544839627/206
207: デフォルトの名無しさん (スッップ Sd33-wlHu) [sage] 2019/01/09(水) 12:21:41.32 ID:c4aAB3Aqd C#というかMSBuildだけど http://mevius.5ch.net/test/read.cgi/tech/1544839627/207
208: デフォルトの名無しさん (ワッチョイ 69e3-RM76) [sage] 2019/01/09(水) 14:41:58.83 ID:2h2JyjUc0 >>203 名前空間の全表記は可読性下げるので使ってないな VSでカーソル当てれば名前空間表示されるし、今時テキストエディタでゴリゴリ書いている人でもなければ全表記する必要ないと思う http://mevius.5ch.net/test/read.cgi/tech/1544839627/208
209: デフォルトの名無しさん (ドコグロ MM63-3T74) [sage] 2019/01/09(水) 14:52:14.20 ID:TKkGGOqYM >>208 MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる http://mevius.5ch.net/test/read.cgi/tech/1544839627/209
210: デフォルトの名無しさん (ドコグロ MM63-3T74) [sage] 2019/01/09(水) 14:55:45.81 ID:TKkGGOqYM pathってファイルパスじゃなくて 曲線かよ死ねよとか 省略形でも違いがあったほうが絶対いい http://mevius.5ch.net/test/read.cgi/tech/1544839627/210
211: デフォルトの名無しさん (ワッチョイ 917b-6YBr) [sage] 2019/01/09(水) 19:11:30.62 ID:5txyXp0A0 >>203 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている 一般的な呼び名を使わないと調べることすらできなくなるよ http://mevius.5ch.net/test/read.cgi/tech/1544839627/211
212: デフォルトの名無しさん (オッペケ Sr85-DIji) [sage] 2019/01/10(木) 13:13:55.78 ID:lMztlpGar >>209 そういうの他にもある http://mevius.5ch.net/test/read.cgi/tech/1544839627/212
213: デフォルトの名無しさん (アウアウウー Sa89-xTYM) [sage] 2019/01/10(木) 20:09:22.40 ID:9xQ4gBbQa P/InvokeやCOM相互運用を書くときに System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ .Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない http://mevius.5ch.net/test/read.cgi/tech/1544839627/213
214: デフォルトの名無しさん (エアペラ SDe2-42Wh) [sage] 2019/01/11(金) 12:39:13.44 ID:qc15f1nfD >>211 その名前を知る事が大変ですよね 沢山本読むしかないんでしょうけど http://mevius.5ch.net/test/read.cgi/tech/1544839627/214
215: デフォルトの名無しさん (ワッチョイ 557b-5zJT) [sage] 2019/01/11(金) 12:57:28.29 ID:RbVY6SmB0 >>214 この話はusingの話で質問した人もわかっているし わからないなら分からないなりに説明したらいいだけ オレオレ用語使ってこんなところで質問するのは普通におかしい http://mevius.5ch.net/test/read.cgi/tech/1544839627/215
216: デフォルトの名無しさん (ワッチョイ a57c-Iup+) [] 2019/01/11(金) 13:29:58.48 ID:5RUmP2fm0 スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり http://mevius.5ch.net/test/read.cgi/tech/1544839627/216
217: デフォルトの名無しさん (ワッチョイ a161-Fjw0) [sage] 2019/01/11(金) 14:37:44.48 ID:225AU0sE0 ちょっと教えろください。 int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、 ?decimalにキャストして足し算した結果がintの範囲に収まっているかif文で判断 ?try catchで例外をつかまえる どっちがいいのでしょう? http://mevius.5ch.net/test/read.cgi/tech/1544839627/217
218: デフォルトの名無しさん (ブーイモ MM71-oec2) [sage] 2019/01/11(金) 14:40:44.08 ID:86XGb19RM >>217 ?decimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断 http://mevius.5ch.net/test/read.cgi/tech/1544839627/218
219: デフォルトの名無しさん (ワッチョイ aa08-8shN) [sage] 2019/01/11(金) 15:54:41.82 ID:r18fheRy0 >>217 int_max - a < bなら a + b < int_maxが成り立つ でも>218のほうがわかりやすいとは思う http://mevius.5ch.net/test/read.cgi/tech/1544839627/219
220: 203 (ワッチョイ dd01-42Wh) [sage] 2019/01/11(金) 17:49:49.09 ID:1orv+xc30 俺がjavaerという事がバレちまったらしょうがねえ なんだよusingってよ vb如きだってjavaリスペクトしてんぞ http://mevius.5ch.net/test/read.cgi/tech/1544839627/220
221: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/11(金) 18:29:52.22 ID:KWycMyC0a >>217 オーバーフローは同じ符号の値を足した時にしか起こらず、起こった場合は前後で符号が変わる。 他の人が見ても何やってるか分かることが重要ならそれで判定するのが一番だと思う http://mevius.5ch.net/test/read.cgi/tech/1544839627/221
222: デフォルトの名無しさん (ドコグロ MM9d-QFwb) [sage] 2019/01/11(金) 18:33:43.65 ID:KnmjjSvJM ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ http://mevius.5ch.net/test/read.cgi/tech/1544839627/222
223: デフォルトの名無しさん (ワッチョイ 7a01-ae4N) [sage] 2019/01/11(金) 18:40:14.66 ID:fFtOgUz40 すみません、初めて見る構造体が出て来たのですが [StructLayout(LayoutKind.Sequential)] struct INITCOMMONCONTROLSEX { public int dwSize; public uint dwICC; } これは何構造体と読むのですか? http://mevius.5ch.net/test/read.cgi/tech/1544839627/223
224: デフォルトの名無しさん (ブーイモ MM9a-kZrb) [sage] 2019/01/11(金) 18:45:24.19 ID:1+lzGhU1M つまらん! お前の話はつまらん! http://mevius.5ch.net/test/read.cgi/tech/1544839627/224
225: デフォルトの名無しさん (ワッチョイ d67b-92yO) [sage] 2019/01/11(金) 18:46:13.28 ID:eF6moy/g0 >>223 https://ufcpp.net/study/csharp/interop/memorylayout/ >Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/225
226: デフォルトの名無しさん (ブーイモ MM9a-kZrb) [sage] 2019/01/11(金) 18:49:12.65 ID:1+lzGhU1M イニシャライズコモンコントロールズイーエックス構造体 http://mevius.5ch.net/test/read.cgi/tech/1544839627/226
227: デフォルトの名無しさん (アウアウウー Sa89-xTYM) [sage] 2019/01/11(金) 18:51:24.03 ID:zVvjOIcHa >>223 構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ http://mevius.5ch.net/test/read.cgi/tech/1544839627/227
228: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 00:09:08.43 ID:iaJ8ArIE0 VS2017でC#のプログラムを組んでます。 はじめてVS2017を使うのですが、画面の下に 準備完了 ↑ソース管理に追加 という邪魔なバーが表示されてます。 VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか? http://mevius.5ch.net/test/read.cgi/tech/1544839627/228
229: デフォルトの名無しさん (ワッチョイ 4a32-kZrb) [sage] 2019/01/12(土) 00:20:55.22 ID:Fl9Ups4U0 >>228 ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す http://mevius.5ch.net/test/read.cgi/tech/1544839627/229
230: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 00:21:44.23 ID:iaJ8ArIE0 >>229 ありがとうございます!!目障りだったんですよね。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/230
231: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/12(土) 01:04:45.40 ID:CChJ5ept0 色々迷ったけど オートフォーマットはOFFにした http://mevius.5ch.net/test/read.cgi/tech/1544839627/231
232: デフォルトの名無しさん (ワッチョイ 55da-RNo8) [sage] 2019/01/12(土) 03:22:33.67 ID:S1bCJ3S10 例外処理(に限らず、エラー処理)ってどこまで徹底して行うべきなんでしょうか? 下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・ if(obj == null) { return msg; } http://mevius.5ch.net/test/read.cgi/tech/1544839627/232
233: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/12(土) 03:53:00.80 ID:ejfouP+Ya >>232 さあ。 でもバグと例外は区別した方がいいんじゃないか。 そのコードは多分バグを想定してるんだよね? 絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど http://mevius.5ch.net/test/read.cgi/tech/1544839627/233
234: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/12(土) 03:58:46.63 ID:ejfouP+Ya 最後の行は引数のチェックの話ね http://mevius.5ch.net/test/read.cgi/tech/1544839627/234
235: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/12(土) 04:03:08.28 ID:2xT9w9620 return msg してるから まず例外をちゃんと使えてないんじゃ疑惑 http://mevius.5ch.net/test/read.cgi/tech/1544839627/235
236: デフォルトの名無しさん (ワッチョイ dd01-trTt) [sage] 2019/01/12(土) 04:04:51.50 ID:DC6KrvaN0 デザインパターンでnullオブジェクトパターンみたいの参考にするのは? http://mevius.5ch.net/test/read.cgi/tech/1544839627/236
237: デフォルトの名無しさん (ワッチョイ dd01-trTt) [sage] 2019/01/12(土) 04:12:05.96 ID:DC6KrvaN0 nullが入るケースがあることを想定している場合にnullチェックを全部書くのがめんどいならnullオブジェクトパターン適用すればいいし 本来はnullが入ってたらおかしいケースならエラーを起こして拾わせるのが正しい構造って回答でいいのかな? http://mevius.5ch.net/test/read.cgi/tech/1544839627/237
238: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/12(土) 04:17:50.15 ID:2xT9w9620 ・nullが来ない想定ならチェック不要 ・nullケース考慮したくないならnullオブジェクトパターン ・null来た場合にぬるり以外で知らせるならチェックする ・nullのネスト面倒ならnull条件演算子 こんな感じやろか null非許容参照型使うという手もあるが http://mevius.5ch.net/test/read.cgi/tech/1544839627/238
239: デフォルトの名無しさん (ワッチョイ 7aad-RNo8) [sage] 2019/01/12(土) 08:05:30.51 ID:VHzQIvd20 読んでる入門書のLINQとラムダうんたらってのが分からなくて 手がstopしてしまっているのですが入門者向けに分かりやすく解説されてるページなど教えていただけないでしょうか? メソッドの使い方はある程度分かったのですがそれじゃ駄目なんすかね… http://mevius.5ch.net/test/read.cgi/tech/1544839627/239
240: デフォルトの名無しさん (ワッチョイ a161-Fjw0) [sage] 2019/01/12(土) 08:39:26.90 ID:0dPYYJK00 >>239 LINQやらラムダ使えなくても動くものはつくれるからまぁまずは作ってみよう http://mevius.5ch.net/test/read.cgi/tech/1544839627/240
241: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 10:13:12.90 ID:iaJ8ArIE0 最近は、自分でプログラム組まずにランサーズでハイスキルな奴に外注してるわw 中抜きでうま〜〜〜 http://mevius.5ch.net/test/read.cgi/tech/1544839627/241
242: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/12(土) 10:35:45.31 ID:e9xF8Gpoa >>232 チームの方針次第 うちの場合は nullを許可しない引数と返り値は基本的に全てチェックして例外を投げてる めんどくさいと思うかもしれないがFluentAssertionのようなライブラリを使えばそこまで大きな負担にはならない nullオブジェクトパターンはやればわかるがチェックするよりも手間がかかる また必ずしもnullの場合の適切な動作を定められるとは限らない 適切でない場合にパターンを適用するとそれがnullオブジェクトかどうかチェックするといった本末転倒なことになりかねない なのでこれが最も適切と確実に判断できる場合を除いて使用しない C# 8.0が待ち遠しいね http://mevius.5ch.net/test/read.cgi/tech/1544839627/242
243: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/12(土) 10:44:33.52 ID:CChJ5ept0 >>232 仕様と設計で解決する問題 エラーが出たときどうしたいの? エラー出たときに別に原因とかわからんでええなら一連の処理をtrycatchで囲ったらええやん なんか起きたらcatchに入ってくるで http://mevius.5ch.net/test/read.cgi/tech/1544839627/243
244: デフォルトの名無しさん (ワッチョイ a5d2-SD/a) [sage] 2019/01/12(土) 17:18:08.40 ID:XDHakXaX0 >>232 外部とのやりとりの場所は結構厳重にチェックを入れる。 自分で書いているところは適当に流す。 外部とは当該館数のパラメータや、呼び出す関数とかの戻り値ね。 try catch で囲んで、チェックして例外発行して、catch 内でまとめてトレース情報込みでログ出してスローするくらいなら大した手間じゃないじゃない。 その例なら if( obj == null ) throw new ArgumentNullException("ぼーっと生きてんじゃねーよ!"); で済む話じゃん。 >>239 コピペでもいいからたくさん書いてみる。で解決するよ。 やってるうちに理屈が分かるようになる。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/244
245: デフォルトの名無しさん (ワッチョイ 867d-Fjw0) [sage] 2019/01/12(土) 17:23:52.90 ID:iaJ8ArIE0 昔は開発現場でこっそりExcel型の2chブラウザでネットサーフィンばかりしてたな〜 座ってるだけで月70万むっちゃらくやった http://mevius.5ch.net/test/read.cgi/tech/1544839627/245
246: デフォルトの名無しさん (ワッチョイ d6a7-VK1S) [sage] 2019/01/13(日) 00:23:58.00 ID:X0+RFgX60 >>239 駆け出し時代オープンソース改造してた時にLINQはパフォーマンス悪いと思って見つけ次第foreachに手直しするという逆工程でLINQとラムダ式マスターした http://mevius.5ch.net/test/read.cgi/tech/1544839627/246
247: デフォルトの名無しさん (ササクッテロ Sp85-aawd) [sage] 2019/01/13(日) 00:46:53.42 ID:IIPQpabmp 使えば勝手にlinqの快感にハマって抜け出せなくなる http://mevius.5ch.net/test/read.cgi/tech/1544839627/247
248: デフォルトの名無しさん (ワッチョイ a563-jrHm) [sage] 2019/01/13(日) 04:21:19.42 ID:qwE0jZig0 麻薬のような機能だなw http://mevius.5ch.net/test/read.cgi/tech/1544839627/248
249: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/13(日) 09:07:48.83 ID:Xn8IPTP50 LINQもRxも使いだすと元に戻れなくなる でも性能気にしてstructとforeachに書き直し始めると時間足りない http://mevius.5ch.net/test/read.cgi/tech/1544839627/249
250: デフォルトの名無しさん (ワッチョイ faad-yiss) [sage] 2019/01/13(日) 09:32:12.32 ID:Z+h8nfOL0 >>246 パフォーマンスのためならなんでforにしなかったん? http://mevius.5ch.net/test/read.cgi/tech/1544839627/250
251: デフォルトの名無しさん (ワッチョイ d6a7-VK1S) [sage] 2019/01/13(日) 18:27:15.40 ID:X0+RFgX60 >>250 Listはしてたよ あとラムダ式はLINQ→foreachより行数減らす意識持って1行メソッドを見つけ次第ラムダ式に直す工程で習得したな http://mevius.5ch.net/test/read.cgi/tech/1544839627/251
252: デフォルトの名無しさん (ワッチョイ 551f-M1d3) [sage] 2019/01/14(月) 23:20:39.35 ID:3wGjtMyb0 ComboBoxに例えばA〜Dと4つ項目が入っていて、A〜Cは同一計算方法でDのみ特別な計算方法でコード内容が異なり且つ色んな計算をする為コードが長くなる場合の見やすくする為の最初の分岐方法とか書き方とかありませんか? 今はifで分岐した中にあれこれ結果を取ってきて結果を出してるのでifがやたら長く見辛いです。なんかいい方法があれば教えて頂きたいです。 http://mevius.5ch.net/test/read.cgi/tech/1544839627/252
253: デフォルトの名無しさん (ワッチョイ 3d46-VK1S) [sage] 2019/01/14(月) 23:31:33.99 ID:CBheeOs80 LINQ使うと元に戻れなくなるのはわかるんだけどデバッグしづらくね? デバッグを想定する時点で初心者なのかな...教えてエロい人 http://mevius.5ch.net/test/read.cgi/tech/1544839627/253
254: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/15(火) 00:45:24.53 ID:DUfu4s9fa >>252 4っつぽっちの分岐で何がそんなに見づらくなるのかちょっと理解できんよ。 いや、煽ってるわけじゃなく本当に 各分岐先のコードが長くなるっていうのならそれぞれメソッドに切り分けるだけじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1544839627/254
255: デフォルトの名無しさん (ササクッテロ Sp85-aawd) [sage] 2019/01/15(火) 02:09:17.70 ID:gvlEsXBIp >>252 if(value == d){ d用処理またはメソッド }else { a〜c用処理またはメソッド } これじゃダメなの? http://mevius.5ch.net/test/read.cgi/tech/1544839627/255
256: デフォルトの名無しさん (ガラプー KKad-zSS6) [sage] 2019/01/15(火) 04:09:30.23 ID:Vsgk6Uc3K >>252 ComboBoxにブチ込むためのクラスを書いてDは継承 http://mevius.5ch.net/test/read.cgi/tech/1544839627/256
257: デフォルトの名無しさん (ワッチョイ a161-PaIb) [sage] 2019/01/15(火) 06:09:12.86 ID:rjgxVR8i0 LINQはなかなか身につかんなあ。 とりあえずforで書いといて見直してこれLINQで一行になるんじゃね?と気付いたらいそいそと書き直す感じ。 LINQ脳になってない http://mevius.5ch.net/test/read.cgi/tech/1544839627/257
258: デフォルトの名無しさん (ワッチョイ a563-jrHm) [sage] 2019/01/15(火) 06:39:49.84 ID:OSSPo6bD0 例えば処理順を意識しなくて良い場合、通常のforまたはforeachで処理するのと、Parallel.ForEachで並列処理するのはやはり並列処理の方が早い? http://mevius.5ch.net/test/read.cgi/tech/1544839627/258
259: デフォルトの名無しさん (ドコグロ MM9d-QFwb) [sage] 2019/01/15(火) 07:24:38.34 ID:ohj/8QmzM >>255 質問者の意図とは違うかもしれんがそういうコード書くと怒るやつがいた職場がある わざわざ継承してうにゃうにゃやらんと怒る んでできたコードが何がいいのか考えてもさっぱり意味がわからん 本人にメリットを聞いてもさっぱり理解できんというかメリットの話になると必ずボケた返しをする ありもしない改修を想定してキチガイとしか思えない発言を連発する そもそも仕様書や設計書に処理がその数で分岐するってあるのに なんで普通に書いたら怒るんだよ もうお前とはやってられん ってとこまでいって仕様書や設計書通りに組んでるのに工数が増えてるのはあんたのせいだ って会社間の会議になってもまだグチグチ言ってる その場にいる全員?な状態だった http://mevius.5ch.net/test/read.cgi/tech/1544839627/259
260: デフォルトの名無しさん (スップ Sd7a-8shN) [sage] 2019/01/15(火) 08:37:28.18 ID:biF9zsRRd 環境次第 http://mevius.5ch.net/test/read.cgi/tech/1544839627/260
261: デフォルトの名無しさん (アウアウウー Sa89-E4e6) [sage] 2019/01/15(火) 08:41:56.04 ID:AEHaNlhRa >>259 条件分岐が減るとかじゃないの? それだけ不具合が減る理屈だが、工数が増えてるんじゃ意味ないな http://mevius.5ch.net/test/read.cgi/tech/1544839627/261
262: デフォルトの名無しさん (オイコラミネオ MM3d-DANP) [sage] 2019/01/15(火) 08:50:45.78 ID:OahWWfOzM 普通のケースでは継承にしても 条件分岐が別の場所に移動するだけだべ http://mevius.5ch.net/test/read.cgi/tech/1544839627/262
263: デフォルトの名無しさん (ブーイモ MM9a-oec2) [sage] 2019/01/15(火) 09:24:06.17 ID:n85zJfLmM >>258 Parallel.ForEachはオーバーヘッドが大きい 一周に数百ミリ秒かかるくらいの粒度の大きなループでない限りは普通のforeachより確実に遅くなる http://mevius.5ch.net/test/read.cgi/tech/1544839627/263
264: デフォルトの名無しさん (ワッチョイ 7a42-VK1S) [sage] 2019/01/15(火) 10:26:04.16 ID:fix0rts+0 多態性は手間がかかる割に恩恵が少ないよな http://mevius.5ch.net/test/read.cgi/tech/1544839627/264
265: デフォルトの名無しさん (ワッチョイ 4de3-Fjw0) [sage] 2019/01/15(火) 16:18:48.41 ID:R0UqBAnw0 >>257 foreachならともかくforで書いているなら苦労するだろう http://mevius.5ch.net/test/read.cgi/tech/1544839627/265
266: デフォルトの名無しさん (ワッチョイ 4de3-Fjw0) [sage] 2019/01/15(火) 16:22:04.50 ID:R0UqBAnw0 >>259 逆のパターンなら数多見てきたけど、そのパターンは珍しいな if分岐が10以上になるからなんとかしてと言われて継承使ったプロトタイプ渡したら、なぜか基底クラスでif文復活してたことならあるけど http://mevius.5ch.net/test/read.cgi/tech/1544839627/266
267: デフォルトの名無しさん (ブーイモ MM9a-jrHm) [sage] 2019/01/15(火) 16:36:00.01 ID:0qvQfApDM C#のforeachってpythonみたいに定義しないでindex取得出来ませんか?forにするしかないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1544839627/267
268: デフォルトの名無しさん (ブーイモ MM9a-RNo8) [] 2019/01/15(火) 16:37:26.00 ID:Oh+57Mh2M [_] http://mevius.5ch.net/test/read.cgi/tech/1544839627/268
269: デフォルトの名無しさん (ワッチョイ 3117-Fjw0) [sage] 2019/01/15(火) 16:53:35.12 ID:XrO54/Dg0 >>267 foreach単体じゃ無理 Enumerable.Select Method https://docs.microsoft.com/ja-jp/dotnet/api/system.linq.enumerable.select?view=netframework-4.7.2 http://mevius.5ch.net/test/read.cgi/tech/1544839627/269
270: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:42:13.30 ID:AbSveg4gd >>267 上のSELECT使った実装例はこんな感じ foreach (var x in items.Select((item, index) => new { item, index })) { Console.WriteLine($"index: {x.index}, value: {x.item}"); } Listか配列かIEnumerabelどれでやってるかは知らないけどもこれで行けるはず http://mevius.5ch.net/test/read.cgi/tech/1544839627/270
271: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 17:49:07.53 ID:u2JtKhAa0 forが完全上位互換なのになんで foreach使うのか? って今でも思ってるよ俺は ループにインデックスが必要になったというただそれだけで変更するんだぜ http://mevius.5ch.net/test/read.cgi/tech/1544839627/271
272: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:55:58.21 ID:AbSveg4gd indexが必要でCountもできる時はわざわざindex生成してforeach使う必要無いと思うけどもLinq使いたい時とかIEnumerabelに実装してるものにわざわざfor使わない派 http://mevius.5ch.net/test/read.cgi/tech/1544839627/272
273: デフォルトの名無しさん (スップ Sd7a-trTt) [sage] 2019/01/15(火) 17:58:55.44 ID:AbSveg4gd というか戻り値をIEnumerabelにして抽象化しておく事が多いから余計にforeach使うのはあるかもしれない Linq拡張メソッド作る時とか諸々 http://mevius.5ch.net/test/read.cgi/tech/1544839627/273
274: デフォルトの名無しさん (ワッチョイ 8e7d-DANP) [sage] 2019/01/15(火) 19:24:57.54 ID:Kk36dR3w0 とりまLINQ使って富豪的に組むだろ http://mevius.5ch.net/test/read.cgi/tech/1544839627/274
275: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/15(火) 20:11:07.93 ID:LAAyKIEna >>252 int CalcDefault(); int CalcSpecial(); int Calc() { if (IsSpecialCase()) return CalcSpecial(); else return CalcDefault(); } bool IsSpecialCase() => combo.SelectedValue == "D"; とりあえず最初はこれでいいよ 似たような条件分岐が増えてきたらリファクタリングしてポリモー対応できないか検討 最初からポリモーは大げさだからやらなくていい でも後でリファクタリングしやすいように責務指向でメソッドを切っておくぐらいはやっておいたほうがいい このへんのさじ加減は経験則だな http://mevius.5ch.net/test/read.cgi/tech/1544839627/275
276: デフォルトの名無しさん (アウアウエー Sa22-j/vx) [sage] 2019/01/15(火) 20:18:43.20 ID:ToRrrvnYa switchを無くすのに多態なんか使う必要ないね。 すくなくともC#にはデリゲートがあるんだから多態使うぐらいならComboBoxのアイテムに デリゲート持たせた方がいいよ。 個人的にはこれも本当に可読的か疑問だけど。 分岐素直に分岐で書いた方が分かりやすいって http://mevius.5ch.net/test/read.cgi/tech/1544839627/276
277: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 20:29:43.48 ID:u2JtKhAa0 テストするときに圧倒的にわかりにくいコードになんの意味があるの? バカのやることは本当にわからない http://mevius.5ch.net/test/read.cgi/tech/1544839627/277
278: デフォルトの名無しさん (アウアウウー Sa89-gnS9) [sage] 2019/01/15(火) 20:31:56.84 ID:LAAyKIEna 確かに 分岐が多いとテストしにくい 少しならいいけど限度がある http://mevius.5ch.net/test/read.cgi/tech/1544839627/278
279: デフォルトの名無しさん (ワッチョイ a161-QFwb) [sage] 2019/01/15(火) 20:50:47.00 ID:u2JtKhAa0 設計書で分岐が100個あったらswitchcaseかifで100個書けよ それが気に入らないなら設計書直せよ そういう当たり前の手続きを無視してコード書いてる雑魚に俺は超えられねぇ http://mevius.5ch.net/test/read.cgi/tech/1544839627/279
280: デフォルトの名無しさん (ワッチョイ a602-XKp7) [sage] 2019/01/15(火) 20:54:23.73 ID:ShjRgn6y0 switch vs 多態って結局プログラムがDRY & SOLIDになってるかどうかって問題に帰着すんだよな >>255はDRYでもSOLIDでもない >>275はSOLIDではあるがDRYではない 多態までいけば完全にDRYでSOLIDなプログラムになる そのコードが一回こっきりで重複がないという前提だと、DRYのありがたみを実感しにくい だからswitch派が一定数居るのだろうね http://mevius.5ch.net/test/read.cgi/tech/1544839627/280
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 722 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s