1 名前:名無C mailto:sage [2019/03/07(木) 06:35:41.12 ID:6L3KEJfe0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part141 mevius.5ch.net/test/read.cgi/tech/1544839627/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
363 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 22:30:05.68 ID:4tcIFh//0.net] 後から追加された機能ってどれもセンスないよね
364 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 23:41:32.18 ID:04eDeW4Td.net] >>358 は?
365 名前:デフォルトの名無しさん mailto:sage [2019/04/13(土) 23:52:54.44 ID:4tcIFh//0.net] >>359 は?じゃねぇよクソ虫
366 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 00:08:30.69 ID:01zt8L7jd.net] >>360 ジェネリクスもセンスないのかい?
367 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 00:26:39.46 ID:eLdyJ0cI0.net] >>358 最近追加された機能は効率重視でちょっと分かり難いのもあるから、 そういう風に見えるのも分からないでもない。
368 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 00:53:29.67 ID:DOuVmEEK0.net] 言語の価値って開発環境も含めて評価すべきじゃない? 自分は別に他の言語でもよい処理をついついc#でやっちゃうのはやっぱりIDEの強力なサポートがあってのことだわ
369 名前:デフォルトの名無しさん [2019/04/14(日) 08:42:45.32 ID:H5M6zKH30.net] >>363 これはRuby先輩を呼び寄せるための撒き餌ですか?
370 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 08:50:41.27 ID:k2b6YaL90.net] C#は、CとC++の系列のように外見を装っているが、実際にはVBのほうが似てる言語だろう。 CやC++に対しておこがましさを感じる。
371 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 08:55:34.96 ID:TOfo8K8Bd.net] >>358 ラムダ式とか使わんの?
372 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:07:27.41 ID:UDnauAFh0.net] >>363 言語の基本文法のみ良し悪しとか、標準ライブラリまで含めての評価とか、議論の対象をどこまでとすらかは文脈によるだろうし、君が開発環境まで含めた話をしたいというならそういう話題をふって話を進めればいいよ。 言語単体での話をしている時に「いやいやIDEが〜」とか言い出すと話が発散するから、議論の対象は明確に区切って意識した方がいい。
373 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:28:07.93 ID:VqeGGHsz0.net] >>358 .NET 1.1 の世界から出てくるな
374 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 09:34:22.94 ID:LBjjw3Zya.net] 今の時代、言語だけ語っても意味はないよなぁ 使えるオプソのバラエティとか、コンテナとの親和性とかの評価は避けて通れない
375 名前:デフォルトの名無しさん mailto:sage [2019/04/14(日) 12:23:16.39 ID:cHKb6r3Sa.net] >>357 この辺の追加機能はパフォーマンスを求めるための機能だから 速度特化ライブラリの製作者は使うだろうけど、それ以外の開発者は使う機会少ないかも https://ufcpp.net/study/csharp/cheatsheet/ap_ver7_2/ >>358 https://github.com/dotnet/csharplang/issues C#の言語仕様はgithub上で公開で議論されている センスある機能について議論や提案してみたらどうだろう もちろん何かコメントしたりissueを立てたりする前に、検索して既出じゃないか確認するのを忘れずに
376 名前:デフォルトの名無しさん [2019/04/15(月) 12:22:07.84 ID:3hi8+ot50.net] 先日windows7からwindows10にOSの入れ替えをしたのですが、win7では動いていたPostMessageが動かなくなってしまいました。 (送り手は自作のソフト、受け手は市販のソフトで、Win7でもWin10でも同じものです) あるアプリケーションに PostMessage(hWnd, WM_KEYDOWN, VkKeyScan("0"), 0); のようにして数字を送信していたのですが、これが反応しなくなりました。 ウィンドウハンドルの取得とかは問題がないようです。 これ以外でも PostMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0); 等すべてのキーが送れません。 対処法がありましたら教えてください。
377 名前:デフォルトの名無しさん [2019/04/15(月) 12:24:05.77 ID:3hi8+ot50.net] 正確に言うと(正確かどうかはわかりませんが)、 送り手側でエラーが出るわけではなく、受け手側のテキストボックスを一応選択はしているので、 送り手側としては送っているつもりですが受け手側が反応しなくなっている状態だと思います。 送り手の発信方法を変えればいいのでしょうか?
378 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 13:27:46.92 ID:3hi8+ot50.net] すいません、解決しました。 管理権限の問題でした。
379 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 22:16:04.04 ID:l4hdcBztd.net] 新しいバージョンたくさんあるけど業務だとどの辺まで使ってるところが多いんだろ valueタプルとかみんな使えてる?
380 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 22:17:38.51 ID:p/g7dyR00.net] >>374 ようやく4.5.2が許されるようになったよ・・・
381 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 22:37:21.92 ID:+hafi/JFa.net] >>374 .NET Core 2.2/C# 7.3使ってるよ
382 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:08:51.63 ID:4W+nw3aAa.net] うちも最近やっと3.5.1縛りが解けて4.5.2になったよ
383 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:14:19.68 ID:5XyUIsTTd.net] >>374 うちは.NET Core2.1、C#7.3 次のLTSは3.1だっけ
384 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:15:38.75 ID:5XyUIsTTd.net] てかVisual Studioをちゃんと更新してればC#のバージョン上げるのは全然問題なくね?
385 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:20:00.65 ID:3+f8cxJ/0.net] 最近?が多くて辛い null条件演算子でも目眩がするのに null合体演算子なんか使われたら頭いたい ところでcoalescingてなんて読むんや
386 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:32:26.55 ID:mJc9sIPpa.net] >>379 ネックはランタイムの方でしょ
387 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 08:37:21.73 ID:bBG3RNJT0.net] Windows7のサポートが切れれば少しはましになるのかねぇ
388 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 09:11:39.30 ID:gry//OiE0.net] >>377 async awaitへようこそ
389 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 12:31:57.15 ID:5XyUIsTTd.net] >>381 だから「C#のバージョン上げるのは」って言ってんのに
390 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 14:23:13.78 ID:o1OTQxfgr.net] とりあえずVSのバージョンだけでもあげてほしいわ 今時2008とかもう
391 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 15:21:56.74 ID:gbkfFEj/0.net] >>385 こっそりあげちゃえよ。だれもお前のことなんかみてないからさ。
392 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 17:28:56.19 ID:CzwWdC590.net] 2015ってアン
393 名前:Cンストールしても平気かな。SSDの空きがかつかつで2019インストールするなら2015は消したい [] [ここ壊れてます]
394 名前:デフォルトの名無しさん [2019/04/16(火) 18:43:16.58 ID:HeVWn8Fl0.net] VS2010からVS2017に上げたら変数名に全角の・使ってるところがビルドエラーになったわ。 こんなの変数名に使うなよと思いながらVS2010で名前変えまくった。
395 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:54:44.72 ID:csRNrKVvM.net] フォームから自動生成したイベントハンドラの頭文字が大文字じゃねぇぞって怒られてるんだけどデフォルトでこうなの?
396 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 19:43:25.05 ID:4DXe6mce0.net] >>388 ユニコードのせいね C#6.0の時のやつ
397 名前:デフォルトの名無しさん [2019/04/17(水) 20:49:20.12 ID:WkJZEAk70.net] ドット絵エディタを作りたいんですが、win formでやってます ピクセルを描くベースとなるフォームはどれを使用すればよいのでしょうか。
398 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 20:56:19.46 ID:SfPYWsjk0.net] フォームに直書きでいいよ
399 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 20:59:20.56 ID:VDkzUi/q0.net] >>391 コントロールなら画像の描画に使うのはPictureBoxでやっとけば調べるのも楽だよ 書き間違いでなく何か別の意味で「フォーム」って書いているのならよくわからない
400 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 21:12:48.03 ID:QwWDImoN0.net] >>391 ピクセルを書くなら Paint だろ。 https://www.youtube.com/watch?v=IYLm8uclr0I
401 名前:デフォルトの名無しさん [2019/04/17(水) 21:28:00.17 ID:WkJZEAk70.net] pictureboxかpaintですね ありがとうございます
402 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 00:15:51.35 ID:xpC+XoNH0.net] textboxで描く
403 名前:デフォルトの名無しさん [2019/04/18(木) 06:13:29.99 ID:VndYiJ+Y0.net] コントロールとクリックイベントはどのような関係になっているんでしょうか。 コントロールは関数で、そのローカル関数がクリックイベントでしょうか?
404 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 08:27:46.76 ID:KcatLawH0.net] インテリセンス表示してみろ vscodeとかならリファレンス表示しろ Control "クラス" って書いてあるだろうが
405 名前:デフォルトの名無しさん [2019/04/18(木) 10:05:51.26 ID:VndYiJ+Y0.net] クラスですか ごめんなさい
406 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 17:04:33.74 ID:/n+AA5ti0.net] >>399 クリックイベントなどのイベントはそのクラスのデリゲートな
407 名前:デフォルトの名無しさん [2019/04/18(木) 18:55:27.19 ID:VndYiJ+Y0.net] デリゲートって語をはじめてしりました
408 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 19:28:26.95 ID:fqeeOSlB0.net] デリケートな話題だからね
409 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 19:38:07.87 ID:cTBQXOBu0.net] デリケートゾーンの話ですか?
410 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 19:57:39.62 ID:YCaR8eKbM.net] 最初は、関数ポインタ+アルファぐらいに思っておけば 後で騙された〜になるけど
411 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:09:25.88 ID:4whWZ0bM0.net] >>400 イベントとデリゲートは全く同じじゃないけどな
412 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:33:46.05 ID:xpC+XoNH0.net] ポインタなんて今時通じるのか?
413 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 09:21:10.96 ID:okUcwqho0.net] Javaでnull参照した時にNullPointerException投げてくるうちは現役だろ(適当
414 名前:245 mailto:sage [2019/04/19(金) 12:51:17.11 ID:5BNgMycMM.net] ぬるぽ
415 名前:デフォルトの名無しさん [2019/04/19(金) 16:10:17.23 ID:OM7ktdHt0.net] ぬるぽ
416 名前:デフォルトの名無しさん [2019/04/19(金) 21:56:33.56 ID:5QVRwjzm0.net] List<T>から要素を1つずつ要素を取り出して処理し、例外が起きたらその要素だけリストから消したいんだけどさあ なんかいい手段ってないのかな? 雰囲気としてはこんな感じのが書きたいんだけど・・・・おらの頭じゃうまく書けんだ・・・・ foreach(var o in listOfObject){ try{ 例外処理以外では対処が難しい怪しい処理(o); } catch{ 例外が起きた項目だけlistOfObjectから消したいが、ちゃんとforeachも回って欲しい(); } }
417 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:02:58.03 ID:MllfoE8V0.net] 新しいList<T>作ってcatchしたときにAddして foreach終わった後でRemoveしていく
418 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:04:41.49 ID:4Fr35pSP0.net] >>410 foreachじゃなくfor (i = listOfObject.Count; i > -1; i--)とかじゃだめなのか 頑張ってforeachにしてもめんどくさくなるだけの気がする
419 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:04:44.06 ID:MllfoE8V0.net] var erroredItems = new List<Hoge>(); foreach (var item in originalList) { try { ... } catch { erroredItems.Add(item); } } foreach (var item in erroredItems) { originalList.Remove(item); }
420 名前:デフォルトの名無しさん [2019/04/19(金) 22:09:40.78 ID:5QVRwjzm0.net] ありがとう こうやってやるもんなのか
421 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 22:27:07.32 ID:i0tIRf8t0.net] listOfObject.RemoveAll(obj => { try { ・・・・・・なんか処理 return false; } catch { return true; } });
422 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:02:36.27 ID:/zNBD6gY0.net] リストに追加前にtry処理したらダメなん? それができないなら俺も415のやり方が良い
423 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:10:17.26 ID:4fcRoJkza.net] public class MyUtil { public static bool Try(Action a) { try { a?.Invoke(); return true; } catch { return false; } }} var b = a.Where(x => MyUtil.Try(() => ThrowableMethod(x))) .ToList();
424 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 06:45:01.92 ID:eu9xvtsyM.net] >>408 ガッ
425 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 06:45:18.46 ID:eu9xvtsyM.net] >>409 ガッ
426 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 08:09:20.70 ID:u/QGNgma0.net] このスレ的にはぬるぽではなくぬるりなのか。エロいな。
427 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 08:43:35.43 ID:ShWYWHRt0.net] 配列のソートのアルゴリズムが難しくて覚えられないんですが 簡単な書き方はりますか?
428 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 08:52:13.85 ID:tgvbScEyM.net] >>421 プログラミングには適性があります。 貴方には向いていません。
429 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 09:08:29.42 ID:Q85hwvCt0.net] >>410 foreach(var o in listOfObject){を foreach(var o in listOfObject.ToArray()){ と配列にコピーしてから実行するのが定石です そのループの中では既に列挙は終わっているから listOfObjectにAddしてもRemoveしても例外は発生しないし列挙の順番にも影響を与えません
430 名前:デフォルトの名無しさん [2019/04/20(土) 09:12:26.10 ID:Q8Lkjfvy0.net] >>421 一度リストで書いて、配列だとどう書くだろう?と考える。 アルゴリズムって基本リスト前提だからね。
431 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 09:15:16.95 ID:dmSDGLr5a.net] >>424 いやソートアルゴリズムの殆どは特定のインデックスに対するランダムアクセスにO(N)を仮定するから配列前提だぞ
432 名前:425 mailto:sage [2019/04/20(土) 09:15:47.20 ID:dmSDGLr5a.net] 間違えたO(1)
433 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:09:52.47 ID:IppyQHdna.net] >>421 今時そんなの覚える必要あんまりない気もするけど、 試験勉強ならがんばって覚えるしかないね >>423 そもそも列挙と同時に削除をするって発想が筋悪。 別に列挙後ゆっくり削除すりゃあよい訳で、>>413 がやってるように2つを分離する方が 考え方として自然で分かりやすいと思うけどね
434 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:52:51.24 ID:XrXcMVKPd.net] >>415 が一番シンプルだな
435 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:49:32.83 ID:ajzSwZvNd.net] 処理と例外が出たものを除去は別の仕事だから処理も分離してるほうが好き
436 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:51:03.66 ID:4fcRoJkza.net] そもそもフィルタかけて何に使うんだ?
437 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 13:53:51.78 ID:LQSO4VHxd.net] >>415 が質問者のしたいことにドンピシャなのに初心者スレだからラムダ式にアレルギーある奴が多いのかな
438 名前:デフォルトの名無しさん [2019/04/20(土) 14:01:01.21 ID:bN8wmmjE0.net] 一番まともな解答にはレス付けないのが2ちゃん式
439 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 14:06:22.07 ID:axr9T2Wu0.net] >>431 >>410 の処理の目的が条件に合わない要素の削除なら>>415 がシンプルで良いけど、 全ての要素に処理をするのが目的で削除はおまけって場合は、>>415 だと本来の目的が分かり辛い。
440 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 14:19:22.63 ID:rcvSJkam0.net] まず、2分探索を、2分ヒープで作れば? O(log N) 2^10 = 1,024 だから、千のデータを、10回で探索できる。 2^20 = 百万 のデータは、20回! リストは、次の要素しかわからないから、ランダムアクセスは、O(N) になる。 例えば、1から5を見つけるのに、1,2,3,4,5 と、リンクをたどらないといけない O(1)にするには、アドレスは計算式で求められるものだけ。 各要素が4バイト使うなら、1が100番地として、5は116番地みたいに
441 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 16:56:48.87 ID:ShWYWHRt0.net] >>427 覚える必要ないんですか…List型のソートメソッドを使っていても後々問題にならないですかね
442 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 17:40:05.04 ID:tqoqa3JD0.net] >>435 基本的なデータ構造とアルゴリズムは一通り理解して自分で書けるようになっておくといいぞ。 標準的な物はライブラリ等で用意されているから実際に業務等でコードを書くときはそれを使うが、独自の問題の解法を自分で考える際に、適切な速度や使用リソース量と工数の兼ね合いで良い方法を選択するには、基本は一通り押さえておく必要があるよ。
443 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 20:18:25.55 ID:zIfu5btc0.net] 必要な時に必要なものを覚えるだけでOK 最初から全部覚えようとしなくてもいいよ
444 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 20:23:09.94 ID:qqngOIWj0.net] ソートに関しては基本情報処理技術者試験の教科書でも読めばいいんじゃないの
445 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 21:14:17.27 ID:f5BR4Kwsa.net] ソートは自分なりに考えてlコードを書いてみてその後にいろいろ学ぶと勉強しやすい
446 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 08:02:20.34 ID:qTT7Abroa.net] 自前で書くソート処理と、.NET Frameworkに実装されてる(Microsoftのプロフェッショナルが実装した)ソート処理、 どっちがより高速でバグが少ないと思う? https://referencesource.microsoft.com/#mscorlib/system/array.cs,d076876f5fbf4eec ↑ここから先に書かれている処理よりも優れたソート処理を自分で書けるならともかく、 そうでなければおとなしく出来合いのソート処理を利用するほうが無難だと思うけど
447 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 09:21:47.18 ID:enjRZRrv0.net] >>440 出来合いのソート処理を利用するなとか誰か言ってんの?
448 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 09:22:37.85 ID:F9kXeXwV0.net] 独習3版読んでないとーしろはqueueも実装できないし、回帰とかも理解しないんだろ。
449 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 09:39:42.10 ID:+WROkW6ha.net] >>440 初心者がソートを勉強しないと自分の書いたコードがなぜ遅いかわからない ソートが魔法か何かで何でも一瞬で並び替えられると思ってしまうと終わり そこから進展はない ソートの回数を減らすように考えたりソート自体を行わないでうまく処理することを学ばないといけない
450 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 09:43:13.42 ID:cNLTxFDL0.net] ソートがボトルネックになった時に最適化を迫られたら弄るしかないじゃんね
451 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 09:50:14.96 ID:+WROkW6ha.net] ソートがボトルネックになったらじゃなくて普通にソートを使うときには必ず気に掛けるべき ループの中にソート入れてるコードがあったりする ループ出た後に一度やればいいだけなのにと思うがそういう所に思いが至らないんだろう
452 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:02:50.79 ID:9BhkjmpP0.net] 今なんねーよ流石に
453 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:09:09.80 ID:+WROkW6ha.net] メソッドの中でソートして戻り値返してるのにもらった側でもソートしたりとか 無駄なことをする可能性はどこにでもある 他人に見られたときにこいつ馬鹿だなと思われないようなコードを書く練習をしよう
454 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:17:01.49 ID:HfCJ1F6L0.net] listのsortメソッドって安定ソートだっけ?
455 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:19:40.66 ID:8e51ow7Fa.net] >>444 それは細かい最適化よりも設計を見直すべきだと思うよ 物事を大域的に見ることができず小手先のハックだけでなんとかしようとするのはプログラマが陥りがちな非常に悪い癖だから注意
456 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:24:24.53 ID:+WROkW6ha.net] 小手先のハックじゃなくて基本だろ どこでソートするかなんて基本中の基本
457 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 10:25:31.30 ID:+0R+dzN2M.net] 無意味な仕事を無くすように働きかけるのではなく、無意味な仕事を無駄に最適化しようとするのは低学歴な意識高い系プログラマあるある
458 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 11:39:31.85 ID:cgZSyzeqa.net] >>448 https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.sort > This implementation performs an unstable sort ついでにいうとArray.Sortも不安定ソートで、Enumerable.OrderByと.ThenByは安定ソート
459 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 12:31:18.60 ID:3jwnQLuZ0.net] ソートはプログラムを覚えるために勉強するもので 実用上はライブラリ使えばいい ただ、勉強するネタとしては割と上質なもの
460 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 12:34:57.35 ID:y1/myRC20.net] (回答する方も)初心者スレらしくていい流れだね
461 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 12:46:19.25 ID:WZ0UQqME0.net] こういうの、listにロックをかけたのに何で同listを使う後続処理がすぐ実行されちゃうの? https://paiza.io/projects/e/EbjQiWv8ebNkW4bbkAY_YQ using System.Collections.Generic; using System.Threading.Tasks; using System; public class Hello{ public static void Main(){ var list = new List<int>(); for(int i=1; i<=1000; i++) { list.Add(i); } Task.Run(()=>{ lock(list){ Task.Delay(10000); } }); Console.WriteLine(list[123]); } }
462 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 12:51:36.48 ID:9BhkjmpP0.net] まだ、そんな産廃機能いじってんのか
463 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 13:00:01.62 ID:cgZSyzeqa.net] >>455 https://ufcpp.net/study/csharp/sp_thread.html#lock lock文はMonitor.EnterやMonitor.Exitを使った糖衣構文であって Monitor.Enterでロックを取得する(=既にロックされているなら、それが解放されるまで待つ) 例示コードではTask中ではlockしているもののConsole.WriteLine箇所はlockがないので、すぐに実行される