1 名前:デフォルトの名無しさん [2019/03/20(水) 18:57:36.47 ID:ZZcTomnN0.net] !extend:checked:vvvvv:1000:512 ■Visual Studio 2017 Community(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。 VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
669 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 15:20:44.65 ID:ODsLgHFcM.net] C#について詳しくなりたい。 .net独学だからテクニックが全く身についてこない。 働きながら学べる人たちが羨ましい。
670 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 16:47:39.95 ID:UTF+PuFAM.net] >>640 働いてはどうでしょうか
671 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 16:53:56.36 ID:JpOAcHlL0.net] >>640 Effective C#とMore Effective C#買って読めば
672 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 09:28:12.82 ID:ReFnqSuP0.net] >>640 オープンソースのソフトウェアをただそのまま使うのではなく 自分で使いやすいよう改造して使ってみたらどうかな
673 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 14:04:49.78 ID:DOYT8O/O0.net] ひとが使いためのライブラリ作らない限りテクニックなんかロクに身に付かんでしょ。 テクニックが要らないように作られれてるのが人気があるライブラリなんだから。
674 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 17:05:33.06 ID:ihSDWtOf0.net] async・awaitを使った非同期処理の並列処理数をSemaphoreSlim使って制御しています。 https://qiita.com/tadokor
675 名前:o/items/28b3623a5ec58517d431 を見ると、SemaphoreSlimのパフォーマンスはそこまで良くないらしいんですが、async・awaitを使いつつパフォーマンスを上げる方法はないでしょうか? 並列処理数の上限は4が理想です。※多ければ多いほどいいのはいいです。 SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1,4) await semaphoreSlim.WaitAsync(); try { await 自分の非同期メソッド } finally { semaphoreSlim.Release(); } [] [ここ壊れてます]
676 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:01:24.85 ID:AiE5hxvs0.net] 必要な場所にだけlockを掛ける lock不要なロジックにする
677 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:04:26.22 ID:hnMq5MVY0.net] >>645 await,asyncはlock使えないから基本>>646 の通り排他不要にするか、そのコードで頑張るしかないんじゃね
678 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 18:33:51.33 ID:4WArcuIG0.net] >>645 そのベンチマークは同期のオーバーヘッドを気にするくらい ゴリゴリ共有リソースにアクセスする場合のための比較だから 4並列でawaitするような処理をする場合とは全然違うものじゃない?
679 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 19:18:50.72 ID:xUxV3tpC0.net] async,awaitってlock使えないのか。。
680 名前:637 mailto:sage [2021/07/12(月) 19:21:57.66 ID:ihSDWtOf0.net] >>646-648 ありがとうございます。 必要な場所にだけ lock 使うようにします。 lock 不要に出来るかも検討してみます。
681 名前:デフォルトの名無しさん mailto:sage [2021/07/12(月) 20:54:40.73 ID:LswkHmLx0.net] これだけだとロックのパフォーマンス差なのかawaitのオーバーヘッドなのか分からん気がする
682 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:04:19.61 ID:JqVxPGJSd.net] #region を使うのは駄目ですか? 開くの面倒だ!ってセンパイに怒られました・・・
683 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:24:45.09 ID:QqSxNnhma.net] うちじゃ使わなかったらレビューで指導が入るけど
684 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:30:58.12 ID:81zoecY+0.net] コーディング規約に従え 個人的には使わないし他人が使ってても気にしない メソッド1個ずつにregionあったらちょっとうざいけど、ショートカット一発で全部開けるしどうでもいいかな
685 名前:デフォルトの名無しさん mailto:sage [2021/07/16(金) 12:53:50.69 ID:QqSxNnhma.net] >>654 の言う通り うちには規約にregionについての記載があるのでその通りにしなかったらレビューの指導対象 こんなことをここに書き込むと言うことは >>652 は規約を読んでないか規約そのものがないかのどちらかだと思うけど
686 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 06:06:49.16 ID:Mspzx0w60.net] 規約ちょうだい
687 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 11:35:23.95 ID:tiRnOuXY0.net] regionは規約がないなら使わないのが無難 特に〜のプロパティ、〜のメソッドみたいな囲いかたは最悪で、今後regionを意識してメンテしなきゃいけないのが面倒 折りたたまないと把握出来ないほどぐちゃぐちゃになってますって言ってるようなものだしね
688 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 14:53:32.71 ID:Wlqcfoar0.net] #region (規約) 把握できないほどグチャグチャになるくらいなら囲んだ方がマシ #endregion
689 名前:デフォルトの名無しさん mailto:sage [2021/07/17(土) 19:23:55.27 ID:1SEym9JY0.net] 画面のクラスとかだとregion的な機能つかいたくなることはあると思うけどなあ。 画面って結局、人間にとって都合のいいように複数のデータを出すものなので、そのデータ毎にregion作ったりするのは変じゃないと思うけど。 Formに依存するコードを、 Form外の別クラスに書いたりしたくないじゃん。
690 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 01:36:46.77 ID:jHDjUzT3d.net] コメントを書かない論者と同じ臭いがする 誰が読んでも自然言語と同じレベルで即座に理解可能かつ 解釈の余地の入らない完璧なコードを書けていて しかもチームの全員がそのレベルに達しているという 地球上に存在しないチームで働いているかのような思い込みをしている
691 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 02:29:32.38 ID:fZXK3W//0.net] 自分しか読まない使い捨てのテストコードならコメントも書かないし、ましてや#regionなんて使わない
692 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 02:41:59.86 ID:gMJXIBls0.net] #regionはあまり使わないが IDisposableパターンの実装とか定型文的なのはでregionで畳んでおくな
693 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 07:23:51.05 ID:Ncq1Qbn/0.net] 俺もそんな感じだな インターフェースを継承するクラスは定形文が多くなるから囲んで畳んじゃう
694 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 09:20:30.72 ID:SEUoEBF50.net] IDisposeパターンなどはpartialでクラスごと隔離するのがお薦め
695 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 10:15:41.72 ID:f26THqN50.net] 子供は肉が好き!
696 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 10:18:34.20 ID:duOzNEUP0.net] partialはお勧めかなぁ? 一見、Disposeが必要なメンバーを持っているのにIDisposableパターンを実装し忘れたクラスに見えてしまいそう。
697 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 11:31:45.33 ID:SQx5QkWC0.net] 自動生成してくれるならpartialでもいいけど自分で書くなら俺はやはりひとつのクラスにするな
698 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:03:11.29 ID:x1tAdumV0.net] VSでクラスから別に定義されたpartialクラスに飛ぶ方法がよく分からないので、partialは使わない。
699 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 19:38:24.99 ID:SQx5QkWC0.net] まあクラスに飛ぶとか言ってる時点で使わない方が無難だろうね…
700 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 21:11:55.98 ID:wT9cmlucd.net] F12とかCtrl+F12とかできなかったっけ 知らんけど
701 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:09:14.51 ID:zdDSWDaE0.net] >>669 言い方が雑なだけでおかしなこと言ってるようには見えないけどなあ
702 名前:デフォルトの名無しさん mailto:sage [2021/07/18(日) 22:10:16.34 ID:ZnA++D2G0.net] partial は元々自動生成コード用の機能であってクラスを分割する機能ではない 明らかインターフェイスの実装を#region化する方が可読性が高い
703 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 02:47:17.54 ID:GZMIZdMt0.net] >>671 相手を否定せずにはいられない可哀想な人達が一定数いるから、そっとしておいてやりなよ。
704 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 10:43:55.05 ID:uTNe/jhZ0.net] partialでクラスを分割してもファイルは1つのままでも問題ない 目障りなコードを#regionより明確に隔離できるから良いんだけどね まあ1クラス1ファイルの規約が有るなら無理だけど
705 名前:デフォルトの名無しさん [2021/07/19(月) 20:59:17.78 ID:yGPED6YR0.net] partial→見るな触るな region→見てもいい触ってもいい という使い分けになりそう
706 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 21:29:24.97 ID:K3gEK6ANa.net] そんな教条主義的に考えなくてもいいでしょw トポロジー的(?)には部分クラスは本の1巻2巻、 #regionディレクティブは章に近い感じがするので必然的に部分クラスの方が 出番は少なくはなるわね。 何のために使うべきか、何のために存在するかってそれじゃ哲学だw エンジニアリングの発想は「何に使えるか」でしょう
707 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 21:50:47.13 ID:6cdKHupi0.net] #region 定数 #endregion #region 変数 #endregion #region プロパティ #endregion みたいに整理?
708 名前:デフォルトの名無しさん mailto:sage [2021/07/19(月) 22:17:06.00 ID:YnDE/De/0.net] クラスの一部をT4で生成させたときに手で書いた分とファイル分けてpartialにするのとかやったことはある regionはIDisposableとかインタフェース実装した時に囲っておくのはよくやるし、 >>677 みたいな使い方するときもある
709 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 07:33:24.30 ID:DOoV4fKqM.net] 定数が増えるなら外部ファイル定義にしろ 変数やプロパティが増えるならクラスを分けろ と思ってるから
710 名前:滅多に無いが、何らかの理由でやむを得ず肥大化した時は>>677 のやり方してるな [] [ここ壊れてます]
711 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 12:11:28.91 ID:npAM0kVy0.net] フォルダ整理と似た話だよね regionってつまるところデスクトップにアイコン敷き詰めてるやつが画面上で1列空けてわかりやすいでしょって言ってる感じ フォルダ作るなりツールなりで管理した方がと思うけどそれが本人にはわかりやすいんだろうな
712 名前:デフォルトの名無しさん mailto:sage [2021/07/20(火) 22:03:15.00 ID:7fUojtbc0.net] というよりデスクトップにファイル並べてるのをフォルダに入れて整理するようなイメージ
713 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 02:31:48.03 ID:/t31adkB0.net] vs2022へ向けてちょっと気合い入れて学習直しすわ
714 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 04:27:22.47 ID:S6x5cz780.net] 多数のクラスが、イベントを相互に Invoke・Listen するようになってきて、 無駄な Invoke・Listen が多数あるような気がする場合、整理するいい方法を教えて下さい。
715 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 04:31:23.12 ID:Tj+N2/ND0.net] 1から設計し直す
716 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 12:58:49.45 ID:yT2R+EQla.net] >>683 N対N関係を整理したいって聞いたら真っ先に思い浮かべるのはmediator?
717 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:00:21.71 ID:5V/5IZHy0.net] Utf8Stringって闇に放り去られたの? C#でHttpClientとか利用してると都度気になっちゃうんだけど
718 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:17:17.07 ID:LS51vqD40.net] そういや8だか9だかで採用って話があったね 10の新機能候補にもないもたいだが…
719 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 13:27:27.47 ID:EKL54yvl0.net] >>683 Microsoft.Toolkit.Mvvm.Messagingでイベントを構築し直したら良いんじゃね? こいつは .NET Standard 2.0対応だからwinformsでも動くはず
720 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 19:34:45.80 ID:q1VZBaGf0.net] とりあえず(ReadOnly)Span<byte>使っとくかと言ってる間に もうそれでいいかってなってる感がある
721 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 08:50:23.66 ID:TYMDGwka0.net] HttpClient周りじゃReadOnlySpan<byte>すらも利用できないじゃん URLとかヘッダに直接utf8放り込みたいのにstringしか受け付けてくれないし その点System.Text.Jsonは直接utf8で行けるからまだマシだけど それでもせめてC++みたいに「u8"あいうえお"」みたいに簡単にリテラルUtf8書けるようにしてほしいわ byte[]で良いから
722 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 17:00:29.45 ID:gz5mByYnM.net] C# やってる奴らとかマジで仕事舐めてんだろ 俺なんてくっさいゴミ回収の仕事して、年収たった900万円台やぞ ゴミの回収は、無かったらお前らだけじゃなく、お前以外の皆全員が困るが、お前らがやってる C# なんて なくてもお前らやお前の身内以外誰も困らんわボケ そもそも C# なんてただのお遊びやんけ 頭使ってる? 頭が良い? そんな頭が良いなら、研究者や医者やもっと世の役に立つ仕事に就けよカスが 一部の頭のおかしい意識高い系どもが C# を神格化して アフターコロナの立派な文化だ! だなんてほざいてるが根本的にやってることは eスポーツと変わらん そもそも遊びは仕事じゃねーんだわ ただの遊びでしかないもので客から金を巻き上げて立派な仕事だの崇める まさに不労所得じゃねーか そして不労所得者に向けられた言葉 「働かざるもの食うべからず」 これ C# プログラマに対する言葉だよ お前に俺がやってる仕事やらせてやろうか? 熱い炎天下の中を走りながらくっさい生ゴミの入った袋を何百個とひたすら回収する。パッカー車に手を巻き込まれりゃ腕切断してカタワになるリスクもあるんだぞ? 夏も冬も空調の効いた部屋でキーボード打ってるだけのお前らなら3日も持たねーだろうな でもな、これが仕事じゃ。仕事舐めんなカス
723 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 17:18:59.23 ID:/kPGqYai0.net] >>691 お前の年収、安っ!w
724 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 21:01:00.40 ID:uzh8TD++0.net] これ何のコピペ?
725 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 22:21:31.26 ID:de4fLkvp0.net] >>693 https://leia.5ch.net/test/read.cgi/poverty/1547956943/855
726 名前:sage [2021/08/21(土) 22:22:26.75 ID:+/txNrCq0.net] >>693 増田で見た.
727 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 00:03:11.52 ID:mrqFYxe80.net] thx なるほど。w
728 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 18:28:34.35 ID:zCBpVreAa.net] 間抜けな仕様なのは重々承知なんだけど c#で作ったアプリケーションでアイコンダブルクリックして起動したあとに もう一回アイコンダブルクリックしたときに 新しいプロセス起動させないで すでに起動してるプロセスのmainwindow以外の window起動させることできないですかね?
729 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 19:36:22.13 ID:cpmwRu6w0.net] >>697 今俺が作ってるアプリではMutex見て、その上でプロセス間通信してる。 coreだとどうしたもんか、と少し悩んでる。
730 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 19:45:55.02 ID:YKmonA5q0.net] coreもそれでいいんじゃないの?
731 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:11:05.40 ID:61xWrGaR0.net] xamarin.formsでタブAからタブBのテキストボックスの値を参照できないので、どうすればいいですか? タブA.csから タブB.txtName を参照するとエラーが出る。
732 名前:デフォルトの名無しさん mailto:sage [2021/08/28(土) 11:44:46.36 ID:H94428G10.net] >>700 どっか別のインスタンスにもっといたら? 入力された時点で親に入れたり。
733 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 08:39:47.70 ID:4fugcblF0.net] ArrayPoolの内部がよくわからないんだけど、GCに負担かからないっていうのは逆に言えば内部バッファは常駐されるってこと?
734 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 13:32:31.59 ID:iOouKnxp0.net] >>702 そうだね https://github.com/dotnet/runtime/tree/main/src/libraries/System.Private.CoreLib/src/System/Buffers
735 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 14:24:19.78 ID:F1x0ap2P0.net] audioSource.PlayOneShot(Announcement); で1分ぐらいの説明音声を流しているのですが、 音声が流れている間、入力を受け付けない良い方法って無いでしょうか?
736 名前:デフォルトの名無しさん [2021/09/01(水) 15:52:06.13 ID:Bk82infv0.net] .NET5でないと動かないライブラリがあるので.NET5をインストールしたいのですが、 ↓を参考にしてインストールしても対象のフレームワークには今まで使っていた4.7.2のバージョンまでしか表示されません。 どうやったら5が使えるようになるのでしょうか? 教えてください。 .NET5とVisual Studio2019のダウンロード、インストール | イメージングソリューション https://imagingsolution.net/program/visualstudio2019v167p1/
737 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:25:20.94 ID:nZXKGJdT0.net] >>705 .NET Framework
738 名前:ニ .NET5 は全くの別物だよ。 参照 ttps://docs.microsoft.com/ja-jp/dotnet/core/porting/ [] [ここ壊れてます]
739 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:25:42.68 ID:xCOolefd0.net] >>705 VS Installerで、[変更]→[個別のコンポーネント]で、[.NET5.0ランタイム]にチェック入ってる?
740 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:46:58.34 ID:Bk82infv0.net] >>706 初心者ですいません。 >>707 確認しましたが入ってます。
741 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:01:44.97 ID:xCOolefd0.net] >>708 もしかして、.NET Framework4.xで作ってある既存のプロジェクトを対象のフレームワークの切り替えだけで.NET5にしようとしてるの? それは無理だから、>>706 が挙げているページにあるように移植作業が必要だよ
742 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 18:54:29.18 ID:Bk82infv0.net] >>709 そうなんですね、勉強になりました、ありがとうございます。
743 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:21:25.28 ID:CGg78V2s0.net] それほど複雑じゃ無い(いかにも企業ユースなフレームワーク使ってるとかで無い限り)プロジェクトなら.net frameworkのソースそのままで.net5としてコンパイル出来る。 ついでにいうとこういった複雑でないものは、.net frameworkのまま、.net5から参照可能。
744 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 06:29:18.68 ID:CGg78V2s0.net] 一方、net frameworkから.net5を参照するのは無理。 この場合既存部を.net frameworkのままで通したい場合は、 .net5の方は薄くCOMインターフェースでうっスーいラップ挟むのがいいかな。
745 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:23:42.13 ID:ffn82dhU0.net] なんでそうぶち上げては切り捨てるを繰り返すのかねMSは
746 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:34:39.39 ID:uXRFOUT10.net] 延々と同じものを使われたら商売にならないから
747 名前:デフォルトの名無しさん [2021/09/02(木) 16:20:15.54 ID:4vWPiFe2F.net] ぐぐーるもたいがいやで
748 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 18:31:28.55 ID:FL5AB1qC0.net] アップルも切り捨て大好きだぞ
749 名前:デフォルトの名無しさん [2021/09/02(木) 18:43:20.96 ID:95p8ZRX9M.net] WINUIも.NET5も遅いし機能少ないくせに
750 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 00:29:45.00 ID:AHipKBXs0.net] 初心者用書いたのですが返答こなさそうなのでこちらに書きます(マルチすいません) GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが これをPictureBoxに直接ドラッグしてイメージを表示させたいです ※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。 https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0 それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。 もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが できればコントロールにドラッグしたいです、よろしくおねがいします。
751 名前:デフォルトの名無しさん [2021/09/03(金) 02:23:45.36 ID:r8mmW0/q0.net] https://github.com/davidegironi/advanceddatagridview/releases/tag/1.2.x.3 上記の、AdvancedDataGridViewを使っています。 フィルタリングする為に、 @カラムヘッダークリック ATreeView表示される選択肢の内、表示しない項目のチェックを外す。 までは動くのですが、選択内容を変更するために、再度カラムヘッダーをクリックすると、Aで非表示化した項目が消えるので、 一度フィルタークリアするしかなくなります。 int型・string型データのカラムだけで発生します。 公式サンプルも同じ状態なのですが、何が原因でしょうか?
752 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 09:05:37.92 ID:PQRWg2pe0.net] >>718 https://stackoverflow.com/questions/8442085/receiving-an-image-dragged-from-web-page-to-wpf-window WPFっつってるけどやってることはWinFormでも全く変わらんね
753 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 08:50:27.01 ID:h/8uTFD00.net] ref structの強制using欲しいと思うのは俺だけ? C++みたいな暗黙でデストラクタ呼ばれる方式じゃなくてちゃんとusing書かないとコンパイルエラーになる感じのが欲しい
754 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 10:49:07.22 ID:hEa6z0ew0.net] >>720 先に質問してたふらっとの方で既に解決しているがそれじゃダメだ
755 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:05:09.28 ID:eiNUFGv40.net] マルチで質問しっ放しか
756 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 00:12:57.46 ID:jZhA4bAr0.net] >>721 コード分析しろ
757 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 04:08:51.28 ID:q85I47vR0.net] 自分でanalyzer書けば警告でもエラーでもだせるよ そこまでやってる人がどれほどいるかは知らんが
758 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 08:29:58.90 ID:e368Ab820.net] 環境依存だと他人に使わせるのはちょっと身が引けるな disposable ref structとでも書いたら絶対Dispose実装しないといけないし絶対using宣言しないといけないってなれば多少アンセーフな機能も公開しやすいんだけど需要は無さそうだな
759 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 12:19:24.33 ID:I20R26Ho0.net] >>726 気が引ける、な。
760 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 17:34:11.61 ID:qrAI1q0R0.net] 50,000レコード、テキスト換算30MBある(想定最大値)JSONデータを取り回すのに向いている、ローカル用のDBエンジン(SQLiteのような)って何かありますか? 出来れば、Xamarin.Forms(Android)でも動くものを探しているのですが、他の方がどうやっているのか知りたいです
761 名前:デフォルトの名無しさん mailto:sage釣 [2021/09/09(木) 22:13:50.14 ID:AWFfXCnC0.net] Redis がベストやな
762 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 00:51:31.54 ID:Hha8Yi5K0.net] >>728 LiteDB。ずっと使ってる。 Linqで引けるから凄く便利。
763 名前:720 mailto:sage [2021/09/10(金) 09:13:28.67 ID:GizC5utx0.net] >>730 LiteDB、良さそうですね。ちょっと試してみます。 >>729 俺の知らない別の使い方とか同じ名前の別のRedisがあるのかと思って1時間ググって見たけど、わからんかった。 Redisで、SQLite的な組み込みの使い方があるの? 比較したいので具体的なところ教えて欲しい……
764 名前:デフォルトの名無しさん mailto:sate [2021/09/10(金) 12:03:33.02 ID:cGWG4Dd90.net] つか5万レコードで何するかしらんが、そのままJsonで持つとかないわ
765 名前:デフォルトの名無しさん mailto:sage [2021/09/10(金) 18:39:49.98 ID:Q85sVIDV0.net] 読み込みだけなら…
766 名前:デフォルトの名無しさん mailto:sage釣 [2021/09/10(金) 20:30:22.77 ID:VM7twAvm0.net] 条件後出しする馬鹿は死ねば良いのに
767 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 10:38:13.01 ID:vIInvTaz0.net] >>732 あるんだなそれが GTA5はそうしてたし
768 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 11:53:02.01 ID:xP5kxsti0.net] 5万レコードぐらいの参照系で頻度が高いものだと結構あって、結局メモリにのせたりしないか? どうせメモリにのせるし、となると、JSONでもなんでもいいし。 LiteDB推したけど、そういう意味ではRedisはそこまで的外れだと俺は思わんかったぞ。
769 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 14:33:36.21 ID:Rk6Iyibj0.net] ソースジェネレーターの開発効率悪すぎやろ マクロと違って受動的な生成できるから便利だけど個人開発程度の規模だと返って遠回りになるな
770 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 16:10:35.48 ID:fbrsRXQN0.net] ノウハウが溜まれば効率よくなるんじゃね?
771 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 17:45:44.97 ID:r8PDzNW10.net] ウハウハだな
772 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 22:24:05.20 ID:AyzBS9aH0.net] >>737 どうすれば良くなると思う?
773 名前:デフォルトの名無しさん [2021/09/12(日) 22:29:29.32 ID:LdHcNCka0.net] ソースジェネレーターって何のこと?
774 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 23:35:28.52 ID:fbrsRXQN0.net] https://docs.microsoft.com/ja-jp/dotnet/csharp/roslyn-sdk/source-generators-overview
775 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 02:03:08.04 ID:Dz4DY8v70.net] ああ、Roslyn関係ね。了解ありがとう
776 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 09:23:25.05 ID:tAtNAwkK0.net] >>740 StringBuilderオーバーライドしたSourceBuilder的なクラスがあればミスも無くなってマシになるんじゃないか もしくはUtf8JsonWriterと同じ感じでもいいな 自分で作れって話なんだけど、ソースジェネレーターってWinFormsのInitializeComponent筆頭に内部では元々あった訳だしMS社内ではSourceBuilder的なクラスは既にあるはずだから公開されるんじゃないかと期待してる
777 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 22:03:41.13 ID:Dz4DY8v70.net] T4テンプレートと組み合わせられないか?(適当)
778 名前:デフォルトの名無しさん [2021/09/16(木) 19:12:10.42 ID:hnfTT3D30.net] WebView2でどんなページ開いてもスクロールバーが表示されずページの下の方が見ることができない。 htmlやcssでスクロールバーを非表示にしていないから、WebView2の設定を探してみたけど見つからず。 スクロールバーを表示させるにはどうしたらいいですか?
779 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 20:03:17.64 ID:uiNLezeY0.net] WinForm? WPF? WPFだと親子関係によっては親が子であるWebView2のレイアウト領域無限に取ったりしてるとか とりあえずWinFormでもWPFでも特にプロパティとかいじらず普通にブラウザとしてのスクロールバーは出る
780 名前:デフォルトの名無しさん [2021/09/16(木) 20:30:28.11 ID:hnfTT3D30.net] >>747 WinFormです。 普通に出るのですか…何も出ないので残念です。
781 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 21:01:08.74 ID:yaf4gWdF0.net] 親コントロールからはみ出してるんかな WebView2側のDockを有効にしたら?
782 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 21:38:21.29 ID:xijkbl3u0.net] まさに今WebView2を使ってるところだけど普通にスクロール出るね >>749 が正解な気もするけど
783 名前:デフォルトの名無しさん [2021/09/17(金) 12:45:26.99 ID:cxQX6Vfo0.net] C#のComInterfaceってちょいちょい頭おかしいな これとかなんやねん HRESULT IEnumFORMATETC::Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched); ↓ IEnumFORMATETC.Next(int celt, FORMATETC[] rgelt, int[] pceltFetched); C#風にラッピングするなら普通はこうやろが int Next(FORMATETC[] rgelt, ref int pceltFetched); //Span<FORMATETC> rgeltなら尚良し
784 名前:デフォルトの名無しさん [2021/09/17(金) 13:49:09.55 ID:oDWWsmOUa.net] 自動機械で生成したっぽいな
785 名前:デフォルトの名無しさん [2021/09/17(金) 14:53:12.40 ID:J/w/zJeW0.net] WEBフリーランスで年収1000万円超えないのはどう考えてもおかしい https://www.youtube.com/watch?v=LoXe8iFAsVs エンジニアは技術力磨きすぎても金になりません https://www.youtube.com/watch?v=lM7bc6vX-3M エンジニアはお金を追求してはいけないという年寄りを論破してみた https://www.youtube.com/watch?v=qJHCmxFv718 エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】 https://www.youtube.com/watch?v=3YwyYSj-k2s 派遣エージェントの言う事は9割ウソである理由【カモられない方法】 https://www.youtube.com/watch?v=8DxQFLAuFqo&t=231s IT業界のヤバすぎる落とし穴
786 名前:5選 https://www.youtube.com/watch?v=WPPCJ4o-mpA 絶対にエンジニアになってはいけない人とは【ハイクラス人材】 https://www.youtube.com/watch?v=kKUC7rZRUtc 【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて https://www.youtube.com/watch?v=fTG-eMpwhCg プログラミングスクールを否定する老害どもについて https://www.youtube.com/watch?v=K2SN-Rr0PgY&t=506s [] [ここ壊れてます]
787 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 06:13:29.41 ID:4Ss0IIt3M.net] C#向けのMIDLコンパイラが粗末なんだと思う
788 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 23:29:53.28 ID:xBbUkBcb0.net] 時代はCsWin32
789 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 12:05:22.09 ID:KmbMbzSx0.net] public Foo<T>(byte[] dat) where T : new() { 〜 }; という定義の関数があります。通常は var IntData = Foo<int>(dat); とやって、バイト配列からインスタンスを作成するのですが、Tの部分をType型の変数を使ってインスタンスを作成したいのです。 上記の例でいうと int intValue = 0; var t = intValue.GetType(); var IntData = Foo<t>(dat); // 型ではなく変数なのでエラーとなる とやりたいのです。 なにか方法はないでしょうか。
790 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 13:52:24.89 ID:SFJimoDq0.net] ジェネリック使わないように定義を変えれば?
791 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 14:32:14.74 ID:0+Ka2zog0.net] decltype(t)
792 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 14:38:26.77 ID:0+Ka2zog0.net] すまんc++と間違えた
793 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:00:33.89 ID:yT+OT+660.net] 許さん。 人世の生き血を啜り 不埒な悪行三昧
794 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:54:49.55 ID:KmbMbzSx0.net] >>757 説明を簡易にするためにintにしましたが、実際はclass/struct定義を指定して、 byte配列との相互変換するための自作ライブラリです。 クラス内クラスといった入れ子状態でも動くようにするために、内部から自分自身を 再帰呼び出しするのに、Type型の変数からジェネリックでの呼び出しが出来るように したいわけです。
795 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 15:57:14.59 ID:/3k3jyoNa.net] >>756 これならできた static class Extensions { static T Foo<T>(this T x, byte[] dat ) where T:new() { return new T(); } } 型推論はコンパイラの機能。 実行時に決まる型をコンパイラに推論しろってのは無理筋
796 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:15:20.36 ID:BlBnXHbl0.net] 危険性を理解した上でBinaryFormatter使え案件では
797 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:18:23.20 ID:rcvaLLYgM.net] >>762 どこから実行時なんて出てきたんだ? >>758 が書いてるdecltype相当の機能が欲しいって話だろ 俺も欲しいわ
798 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:33:19.87 ID:NYWmPD2Y0.net] C#の標準ライブラリにもよくジェネリック版関数とType版関数があるようにそれ真似ればええだけやろ 後からジェネリック版が続々と追加されたことからも分かるようにType版はリフレクションに頼る羽目になるのでパフォーマンスに劣るがな そういやネットワークメッセージをルーティングするにあたってそのたびにDynamicInvokeしてるバカなコード書いてる奴思い出したな
799 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:36:51.40 ID:rcvaLLYgM.net] ↑頓珍漢すぎるバカw
800 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:41:12.52 ID:/3k3jyoNa.net] >>764 そっちこそ何を言ってんの。 ジェネリックの型テンプレートはコンパイル時に確定している必要がある。 それをType型の変数tの値(当たり前だが実行時に決まる)からコンパイル時に 推論できるの?
801 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:56:38.77 ID:J3rlWY70M.net] >>767 >>756 には > int intValue = 0; > var t = intValue.GetType(); > var IntData = Foo<t>(dat); って書いてあるけどやりたいのは int intValue = 0; var IntData = Foo<decltype(intValue)>(dat); // もちろんC#にはdecltypeはないからエラーになる だろ コンパイル時にintValueの型はわかってるから原理的にはできるはず
802 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 16:59:12.82 ID:6TsnNU9s0.net] >>756 普通にもう一段ジェネリック関数でラップしたらいいだけじゃん static T Foo<T>(T value, byte[] dat) where T : new() => Foo<T>(dat); int intValue = 0; var IntData = Foo(intValue, dat);
803 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:12:05.00 ID:J3rlWY70M.net] まあそうなんだけど値を使わないのに引数に指定するのもなんか気持ち悪いし ※ 個人の感想です
804 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:19:29.24 ID:6TsnNU9s0.net] >>770 var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い GetType()はオブジェクトヘッダからタイプ情報を抜き出すっていう実行時処理だからそれこそ求めてるものとは全く違うと思うけどな 逆にジェネリックは完全にコンパイル時計算なので>>769 とか>>762 ならほぼ確実にインライン展開される
805 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:25:05.23 ID:6TsnNU9s0.net] それに下手したらintに対してGetType()するとmalloc(sizeof(int32_t) + sizeof(void*) * 2);みたいな処理が内部で走って糞効率悪いぞ(Boxing)
806 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:41:25.60 ID:DH+C27O00.net] 戻り値をoutで返せば
807 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:42:27.32 ID:J3rlWY70M.net] >>771 > var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い まあ気持ち悪さの基準は人によって違うから、お前はそうなんだろうね
808 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:46:34.83 ID:OckC1gs8p.net] よしわかった! リフレクションでジェネリックメソッドを生成しよう!
809 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:47:27.75 ID:KmbMbzSx0.net] >>763 後出しですみません。 既存の機器と通信するためにByte配列との相互変換なのですが、 BCDとか、エンディアンの指定があるんです。 なので、BinaryFormatter は使えないんです。 >>769 なんとかなるかな? ちょっと試してみます。 アドバイスありがとう。
810 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 17:49:12.35 ID:6TsnNU9s0.net] >>774 引数指定しなくていいバージョンも754が書いてくれてるだろ int intValue = 0; var IntData = intValue.Foo(dat);
811 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 18:13:44.25 ID:J3rlWY70M.net] >>777 申し訳ないけどそれもっと気持ち悪いわw 1週間後にそのコード見て一瞬何してるのか戸惑う自信がある
812 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 15:45:06.15 ID:MCa79m/M0.net] 久しぶりにC#で書いてるんで勘違いしてたら悪いんだけど var str = "abc"; で、strがstring?になるんだけど前からこうだっけ? 非null型にするには string str って書かないといけないんだっけ?
813 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 17:08:52.72 ID:SC9lU+iw0.net] 今でもそうじゃない。 Null許容オプションを変えればそうなるが、デフォルトは無効。
814 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 20:55:13.11 ID:v2L5F78s0.net] C#8.0以前と昔と同じ動きになるようにしてるからオプションデフォだと?付けてるんだぞたしか
815 名前:デフォルトの名無しさん mailto:sage [2021/09/29(水) 03:06:23.18 ID:hXKTXicB0.net] >>756 Reflection使えばなんとかなるんじゃね https://devlights.hatenablog .com/entry/20081107/p2
816 名前:デフォルトの名無しさん mailto:sage [2021/10/05(火) 14:17:33.11 ID:/KAzPTlo0.net] unsafeでゴリゴリするのとNETの中間言語(IL)を直書きするのってどっちが速くなるのかな unsafeでゴリゴリも結局ILに直されるんだよね?
817 名前:デフォルトの名無しさん mailto:sage [2021/
] [ここ壊れてます]
818 名前:10/05(火) 14:22:47.33 ID:NZoK2SbN0.net mailto: そらちゃんと最適化されたものがかけるならILじゃないの? 規模次第だけど大抵はunsafeが早くなると思う [] [ここ壊れてます]
819 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 20:28:42.14 ID:E0v4aPqh0.net] ネットワークドライブ上のNASに映像ファイルをコピーする処理をTaskで非同期処理を おこなっているのですが、たまーにネットワークがきれるのかNASの問題なのか 転送がとまったきりになります CancelTokenでファイルごとにキャンセルは入れられるよう進捗ウィンドウを作ってるのですが File.Copyが1つのファイルで走り始めてから止まり、Exceptionも吐かないので 中断処理入れようにもどうにもならず とりあえずApplication.Exit()でアプリごと落としてお茶を濁しているのですが なにかうまい方法ありますか?
820 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 21:02:20.21 ID:2LxqHeEp0.net] なす
821 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 21:37:29.69 ID:dgJN1SIT0.net] すし
822 名前:デフォルトの名無しさん [2021/10/06(水) 21:47:22.32 ID:le4x28/F0.net] FileCopyExならキャンセルできるとか https://social.msdn.microsoft.com/Forums/vstudio/en-US/45e0254c-c28f-48ad-8aac-172a903227a7/cancel-a-filecopy?forum=clr
823 名前:デフォルトの名無しさん mailto:sage [2021/10/06(水) 23:26:50.78 ID:9/4lkKr3a.net] >>785 問題を良く理解してないけど まあ生ThreadならAbortできるね。 昔はデッドロックするバグがあるネイティブdllの関数呼ぶときにはこれ使ってた。 さすがに今時は別の方法が用意されてるはずだと思うけど
824 名前:デフォルトの名無しさん mailto:sage [2021/10/07(木) 04:29:01.91 ID:NGhNP/TI0.net] HOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMOHOMO
825 名前:デフォルトの名無しさん [2021/10/08(金) 20:11:01.95 ID:TjcV2IEr0.net] >>779-781 これすごい機能だな .NET 6から新規プロジェクト作成するとデフォルトで有効になると書いてある 引き継いだから知らなかった
826 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 11:37:08.06 ID:h6ZKeWCX0.net] >>788 >>789 レスありがとうございます 返信遅くなりました 参考にいろいろやりましたが結局FTPで切断して中止させる方が簡単で 送信データ量などの進捗が拾えて残り時間の計算も簡単なので NASとFTPでやりとりすることに落ち着きました
827 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 18:50:18.68 ID:+thFiXiN0.net] MSの.NETチームってアジア人少ないのか? 表に出てくるメンツ見てると黒人とかラテンアメリカンはちょいちょいいるのにアジア人がほぼいないんだが、 アメリカのIT企業って総じて黒人よりアジア人の方が従業員比率高いはずなのにおかしいだろ ポリコレソードで一刀両断して良いか?
828 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 21:33:52.17 ID:PYlrOq+m0.net] 何のために?
829 名前:デフォルトの名無しさん mailto:sage [2021/10/18(月) 22:56:12.18 ID:Yxn1i5HN0.net] >>793 キモッ!
830 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 09:12:00.45 ID:dghFXsSl0.net] ブリザードの闇を知ってからはアメリカのIT業界も色々とやべぇんだなとは思った ああいう闇があるからこそ日本人からは到底理解できないようなポリコレが流行るのも致し方ないと思えるようになったわ
831 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:22:17.02 ID:PEqeSIiy0.net] Streamで非同期のreadを行っています。Stream.BeginRead(〜); このBeginReadをキャンセルするにはどうすれば良いのでしょうか。 通常の読み込みだと、BeginReadで指定したコールバック先でStream.EndRead(〜);を実行するのですが、1バイトも受信していない場合、EndReadを実行すると待ち状態になってしま
832 名前:「ます。 [] [ここ壊れてます]
833 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:44:59.71 ID:cm6tlOC00.net] StreamをDisposeすればEndReadで例外が出る
834 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 10:55:17.24 ID:PEqeSIiy0.net] >>798 BeginRead をキャンセルしたいのは、同じストリームに出力を行いたいためです。 なので、Streamは破棄できません。
835 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 14:36:25.49 ID:P0vvwNoGM.net] >>797 BeginRead 見たら ReadAsync の使用を検討しろって書いてあるからそうしたら?
836 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:15:21.66 ID:L0dEwSHfa.net] Readがデッドロックするような状態なら常識的にはWriteが成功するとは 考えにくい気がするんだけど違うのかなw
837 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:37:59.83 ID:cm6tlOC00.net] デッドロックは言葉の使いどころが違うと思う ReadAsyncでCancellationToken渡したとしても CancellationTokenSource.Cancelでキャンセルできるかどうかは具象クラスの実装次第なのに注意 .NET Core系は多分問題ないと思うけど.NET Framework系はあんまりサポートしてない印象
838 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:58:37.60 ID:PEqeSIiy0.net] デッドロックがどこで出たかわかりませんが、やりたいのは名前付きパイプでのプロセス間の相互送受信です。
839 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:22:02.29 ID:yAs/qSwO0.net] >>797 適当なこと書くけど、コールバック先の中でEndReadするのだと、データの読み取りが 完了しない限り実行されないのでダメなのではないかな? やるならばBeginReadの返却値であるIAsyncResultの内容を保存しておいて、Read 処理をやめたくなったら、保存しておいたIAsyncResultの値をEndReadに指定して 呼び出すんじゃないのかな?
840 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:27:10.49 ID:5eWBXwewa.net] >>802 確かに「自分で自分の処理が完了するのを待つ」 状態に陥ることを指す場合が多いけど、 単純に何かの処理が終わらないことや終わらないことも デッドロックと言うと思うけどね。 >>803 それならReadをキャンセルする必要なんか最初からないのでは?
841 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:29:59.71 ID:F0Ya2cseD.net] >>805 デッドロックについて言ってること全部間違ってるように見える
842 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:32:13.92 ID:q5Q5l1tU0.net] >>805 言いません
843 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:42:34.22 ID:mUw6gLDG0.net] 絶対言わない
844 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:45:34.17 ID:5eWBXwewa.net] >>806-808 いや言うからw 言うまでもないけどdeadlockは座礁のこと。 つまり身動きが取れなくなることなんだよ。 それは自分で自分を待つケースに限らない。
845 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 18:47:21.34 ID:mUw6gLDG0.net] 勘違いも甚だしい
846 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 19:18:16.00 ID:F0Ya2cseD.net] >>809 やはり勘違いしてるな
847 名前:デフォルトの名無しさん [2021/10/19(火) 19:26:02.78 ID:NUYGeUrwM.net] デッドロックとは 対策に徹夜で3日以上かかるバグの事を指す
848 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 19:32:00.07 ID:8pYZM1g+M.net] >>809 英語の元の意味と業界用語が違うなんていくらでもあるぞ NIC の promiscuous (mode) とか調べてみw
849 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 21:14:28.92 ID:dVCJCghn0.net] そもそも名前付きパイプって同一のストリームを読み書き両用でつかえるのか?
850 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 22:15:54.02 ID:P+gkhAFH0.net] 組み込みの資格の問題集では、 デッドロックは、資源のたすき掛け タスクA が、資源X, Y の順にロックして、 タスクB が、資源Y, X の順にロックする ここで、どのタイミングでデッドロックが起きるか、という問題
851 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 02:56:42.16 ID:KEjGoucL0.net] rubyガイ、お前には聞いてない しゃしゃるな
852 名前:デフォルトの名無しさん [2021/10/20(水) 09:16:14.30 ID:OEiI06HQa.net] >>812 発見に3日以上 対策は3秒 だろ
853 名前:デフォルトの名無しさん [2021/10/20(水) 09:18:08.43 ID:OEiI06HQa.net] >>814 OK
854 名前:789 mailto:sage [2021/10/20(水) 0
] [ここ壊れてます]
855 名前:9:47:41.27 ID:JvBM85mK0.net mailto: 最初から説明すると、やりたいのは.NET5のWorkerServiceで作成したWindowsサービスの状態をタスクトレイに表示することです。 Windowsサービスから直接タスクトレイに表示する事が出来ないということで、タスクトレイ表示用のフォームアプリを作成。 両者間でプロセス間通信を行い、フォームアプリからWorkerServiceへの問い合わせという形では問題なく通信できました。 ※フォームアプリ:送信専用/WorkerService:受信専用 ただ、WorkerServiceの状態が変わるのは希なことなので、フォームアプリから頻繁に問い合わせるのは無駄が多いので、 フォームアプリからWorkerServiceへの接続以外はWorkerService側からのPush通信を行うように修正しました。 フォームアプリ:受信待機、WorkerService:送信。WorkerService:受信待機、フォームアプリ:送信のテストは正常に終わりました。 送信はいつ発生するかわからないため、双方を受信待機にしたところ、その状態では送信が出来ません。 受信待機状態で無ければ送信出来るのは確認しているので、受信待機を解除出来れば送信出来ると考え、その方法を探している途中です。 >>814 上に書いているとおり、受信待機状態で無ければ送信できます。もちろん、受信待機状態で相手から送信されれば受信できます。 実際にテストし、確認しています。 [] [ここ壊れてます]
856 名前:789 mailto:sage [2021/10/20(水) 10:34:02.67 ID:JvBM85mK0.net] >>804 コールバック先ではなく、送信用関数の頭でキャンセルするようにしています。 BeginReadの返り値を保存。キャンセルしたい場所でEndReadの引数に渡すようにしているのですが、EndReadを呼び出すとそのままだんまりです。 なので、なにか手順でもあるのかと思い、検索をかけたのですが解決法がわからないため、ここで質問しました。
857 名前:デフォルトの名無しさん [2021/10/20(水) 10:39:51.36 ID:OEiI06HQa.net] >Windowsサービスから直接タスクトレイに表示する事が出来ない サービスの登録で「デスクトップとの対話を許可」してあれば表示出来ますよ?
858 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 10:42:48.21 ID:Es2OjjC60.net] 送信がちゃんと動いてるならそこ変える必要なんてないし 送信と別に受信用の接続つくれば解決するんじゃ
859 名前:789 mailto:sage [2021/10/20(水) 10:51:47.47 ID:JvBM85mK0.net] >>821 .NET 5 ではサポートされないと、どこかで読んだ覚えが・・・ 参考になるWebPage等あれば教えてください。 直接やった方が単純なので・・・
860 名前:デフォルトの名無しさん [2021/10/20(水) 11:37:20.61 ID:OEiI06HQa.net] Windows 管理ツール → サービス サービス名で右クリックしてプロパティ → ダイアログ → ログオン 「デスクトップとの対話をサービスに許可」にチェック HKLM\\SYSTEM\\CurrentControlSet\\Control\\Windows\\NoInteractiveServices 0にする必要があるかも
861 名前:789 mailto:sage [2021/10/20(水) 14:16:23.47 ID:JvBM85mK0.net] >>824 教えていただきたいのは設定の方法ではなく、.NET 5のServiceWorkerでタスクトレイにアイコンを表示する方法です・・・
862 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 15:27:59.69 ID:G+Qou/Ta0.net] さすがにサービス作るのは面倒だから同一プロセス内で試しただけだけど BeginRead中に普通にWriteできたよ NamedPipeXxxStreamをnewする時にPipeOptions.Asynchronous指定してる?
863 名前:デフォルトの名無しさん [2021/10/20(水) 15:55:53.51 ID:5SoWglAaa.net] https://atmarkit.itmedia.co.jp/ait/articles/1704/11/news015.html
864 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 16:10:12.00 ID:JvBM85mK0.net] >>826 していませんでした。 サーバ、クライアント双方にオプションを指定し、Stream.Read中にStream.Writeが可能なことを確認しました。 ありがとうございます。
865 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 17:19:49.71 ID:VKVb6/esd.net] 前提をすっ飛ばすと突拍子もない解決手段を思いつきそれを実現しようとしてしまい四苦八苦する典型例みたいですね
866 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 18:07:28.07 ID:jvdlGdZPa.net] レジ袋有料化みたいな話だね ただ、批判する意図はないけど、位置の概念がない
867 名前:ストリームなら普通「全二重」であるはずだ、 ってのはちょっと考えれば気づけたはずじゃなかなとは思う [] [ここ壊れてます]
868 名前:デフォルトの名無しさん mailto:sage [2021/10/20(水) 18:43:57.39 ID:qS9LysT00.net] 出来ることを出来ないと思い込んじゃったとこから始まってるんだな。 サービスからのタスクトレイアイコン然り、Streamのリードライトも然り。
869 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 11:54:41.56 ID:JzKHPePF0.net] >位置の概念がないストリームなら普通「全二重」であるはずだ お前の勝手な思い込みだとしか思えん
870 名前:デフォルトの名無しさん [2021/10/21(木) 12:25:32.61 ID:8qSe0EAma.net] イキり馬鹿には「普通は」って文字が読めないんだな
871 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 13:30:46.89 ID:E6Iq4yprD.net] >>830 その方法で判断してるなら既にいくつかバグ孕んでそう
872 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 14:41:10.46 ID:hTdTaobFa.net] r/wを排他的にせざるをえない必然性や制約が存在しない限りわざわざ排他的にする合理性はないというだけの話。 馬鹿じゃないの。 というか、例えば2.0までのUSBは物理層が「半二重」だが、上位の層ではそんなことを 意識する必要はないようにしてある。 そんな制約を意識する必要があったらやってられないからだ。 必要もないのにそんな制約を課す馬鹿がどこにいる
873 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 16:22:37.02 ID:vKSzbwpZ0.net] 双方向に通信できるか、一方向にしか通信できないことと、全二重半二重は別の概念じゃない? 双方向通信になって初めて半二重なのかと考える必要があるし、そもそもIPCをOSのAPIで使ってるときにそんなにシビアに考えることかな?という気がする
874 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 16:25:27.19 ID:AAqgo5mm0.net] 双方向のプロセス間通信なら、パイプじゃなくてIPC使ったほうが楽じゃね?
875 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 22:48:54.75 ID:JzKHPePF0.net] >>833 お前の言う「普通」はお前の思い込みだって指摘だが、普通が読めないとかどっから出てくる話だ そもそも位置の概念と双方向か片方向かは関係ないし 双方向のストリームは全2重であるべきだって意見なら理解しないではないが お前の希望が普通に実装されてるとは限らんのだよ
876 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:27:01.26 ID:OMPuRiy7a.net] 白鳥は普通白い、というのは全称命題(黒い白鳥はいない)ではない。 イキり馬鹿って本当に馬鹿で笑えるねw ファイルのように位置の概念があるストリームでは排他的にr/wされたら困るだろうw 馬鹿じゃなかろうかマジで
877 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:28:52.19 ID:OMPuRiy7a.net] × 排他的に 〇 非排他的に
878 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 03:58:09.76 ID:OMPuRiy7a.net] 最近ヤフコメの規制が話題になってるけど、 webくんだりで他人に居丈高な態度を取る奴の動機の源泉(うだつ上がらない) なんて見え透いてるよねw 別にうだつ上がらないのは悪くないが(俺もそうだし) いい歳こいてそういう自分の動機を自覚できないのも、他人から自分がどう見えているかを 意識できないのもかなり痛々しいよねえw
879 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 07:26:26.05 ID:fpd3u34i0.net] 括弧の中はコーラスかな
880 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 08:40:47.54 ID:sYXSwuhS0.net] うだつってどこで売ってるの?
881 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 08:47:26.63 ID:oVr78/SWM.net] >>839 普通のファイルのシークしながらの読み書きなら困る、はわかるんだけど、 それを一般化して、位置の概念のあるストリームで「普通」成り立つべき性質なのかよくわからない。 後学のために、いい例を教えてくれないか?
882 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 11:28:17.10 ID:J+jDEcsH0.net] そもそもファイルストリームって(単一ファイルでは)双方向通信に使えるものじゃないから、 全二重という思い込みがよく分からないし ワッチョイ的にデッドロックの意味勘違いしてた人っぽいし 全般的に用語の使い方がいい加減な人なんだろうなと思った
883 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 11:54:11.71 ID:V0jARYip0.net] ファイルストリームって、追記モードで複数オープンされたファイル扱えないのか?
884 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 12:08:46.46 ID:V0jARYip0.net] 双方向のストリームなら、非排他的にアクセスされると困るという意見ならまあ理解はできる 排他的とか、自分以外のアクセスの話で、自分が全2重でアクセスできるかどうかとは無関係だがな
885 名前:デフォルトの名無しさん mailto:sage [2021/10/22(金) 12:47:13.67 ID:V0jARYip0.net] >>845 なるほど 全2重/半2重から排他/非排他の話になってるのは 話をずらそうとしてるんじゃなくて自分の中でもちゃんと区別できてないのか
886 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 03:48:37.41 ID:Ebis89vva.net] >>845 俺が用語を正確に使ってないのでなく君に読解力がないだけじゃないのかな。 俺はファイルストリームは「半二重」だと言ってるんだよ。わざわざ括弧を付けて。 括弧を付けているのは全二重/半二重という用語は普通はストリームを対象にした 用語ではないからだ。
887 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 03:54:05.25 ID:Ebis89vva.net] というか、「必要のない制約をわざわざ課す馬鹿っているんですか?」 っていうのが俺の主張の本質なんだけど、その辺も含めて文脈読めないにも程があるね。
888 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 06:21:08.23 ID:4lHZz/Ub0.net] ああ、ほんとに双方向か片方向かと全/半2重の区別がついてないのね
889 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 10:19:03.31 ID:BecJ+B2qa.net] 全二重と半二重は鉄道で例えれば単線と複線の違いだよ。 RS485通信は半二重通信になるけどな。
890 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:15:38.06 ID:kMf1w+hQa.net] >>851 またそれか。 片方向の文脈であれば全二重/半二重の区別は意味を持たない。 区別がついてないのは君じゃないの。マジで大丈夫か
891 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:24:26.91 ID:kMf1w+hQa.net] だいたい双方向とか片方向とかいう話がどっから出てくるのw 意味がわからないよ だから、必要もないのにr/wを排他的にする制約を課す馬鹿っているの?って話をしてるんだけど
892 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 12:31:01.70 ID:kMf1w+hQa.net] 次の展開予想すると、>>851 みたいな人はたぶんそれでも片方向/双方向の違いに固執して 「片方向っていうのは片方だけが能動的にr/wすることをいうんだ」みたいな話になるんだろうねw だから、だから何だよw この文脈でそれ重要ですか?
893 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 15:32:33.07 ID:4lHZz/Ub0.net] ああ、排他的ってのは自分自身からのリードとライトについて言っているのか つまりお前の中では、全2重=非排他的 半2重=排他的 ってことなのね で、片方向っていうのは片方だけが能動的にr/wすること だと まあこれからも独自路線を行ってくれ。できればひっそりと
894 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 16:20:34.86 ID:qOtMLiXha.net] ファイルストリームに半二重ないやろ? 途中で方向変わるのか? 全二重もないし。
895 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 16:40:45.22 ID:ju8sH4Lg0.net] 誰かこいつらの脳幹をdisconnectしてくれや
896 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 17:30:30.88 ID:nuxNtcA20.net] NO CARRIER
897 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 20:36:34.43 ID:cIXJUcvh0.net] >>855 既に定義された用語と違う独自用語使うならスレ外でやれ デッドロックがどういう状態かの理解はできたか?
898 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 08:10:52.85 ID:H+hg1O8s0.net] 海外の機関車のハンドルとかについている装置 運転手が突発性の病気で倒れたりして手を離すと緊急停止する
899 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 09:43:28.98 ID:GqjTTybe0.net] つまんね・・・
900 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 15:32:53.27 ID:zsG9VPuLM.net] 鎌池和馬の言の葉、我が身に降臨す。
901 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 19:07:57.24 ID:d/hZB5lcM.net] >>861 それは Dead man's switch
902 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 19:38:31.87 ID:L4R2KWZAa.net] >>860 いい機会だから言っておく
903 名前:ゥ。 それは違う。 言葉というのは置かれた文脈によって意味が変わる、 という中学生でも知っている事実を君が知らないだけじゃないの? だいたい文脈無視して意味不明な用語法の問題にすり替えて、 それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。 [] [ここ壊れてます]
904 名前:デフォルトの名無しさん [2021/10/25(月) 19:42:31.57 ID:L4R2KWZAa.net] あと>>841 ねw
905 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 20:07:49.31 ID:7NDplVqs0.net] どうでもいいけど技術的なやり取りをするのに言葉の意味を明確に定義せずにするのは困難しか産まないと思うけどな。 独自用語でもちゃんと定義したらよろしい。 定義なしに文脈によって意味が変わるなんて言ってるのは技術者失格。
906 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 22:36:46.73 ID:zQaJMovpM.net] えっちょっと待って IT用語としての「デッドロック」なんて基本情報レベルな単語だしこの板に書き込むような人なら常識だと思ってたんだけど >>809 なんかはてっきりギャグとして書いてるか、さもなくば デッドロックって言葉の意味を知らない人を馬鹿にするためにわざと書いてると思ってたんだが ひょっとして本当に知らなかったの?? でもって無知を恥じるでもなく「読解力」とか言い出して責任転嫁してるの? 「ボクチャンわるくないもん、読み手が馬鹿なのが悪いんだもん」って言ったところで 馬鹿をさらしてる人が言い出したところで説得力ないと思うよ そのうえさらに自分の語用・論理展開が支離滅裂なのを棚に上げて「文脈」とか言い出して正当化してもなあ >それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。 その言葉を反芻すべきなのは>>865 だと思うよ
907 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 22:56:47.64 ID:myY8ExBF0.net] 文脈無視して意味不明な用語法ってか さすが自分の常識は絶対だって自信がある人はちがうな で、技術論を人格攻撃で逃げようってか 相手してられん
908 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 23:12:43.16 ID:c86hiX/I0.net] デッドロックマンティウンティウンwww
909 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:05:29.94 ID:tLsOhANt0.net] お前らそろそろ落ち着きませんか? c#10の話でもしようぜ(錯乱)
910 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:13:31.28 ID:qCIhQ9NK0.net] 特定の会社なりグループなりの小さなコミュニティ内で本来の定義とは異なる意味で用語が使われることはある そのコミュニティ内で齟齬なく意思疎通取れてるならまぁ問題ない ただその輪から出たら本来の意味でのみ使用すべきだし誤解を招きそうなら補足を入れるなりすればいい 定義にシビアなことが求められる技術者がこういう場で文脈によって変わるとか言っちゃうのはどうかと思う こういう場というのが便所の落書きじゃん、というなら否定はできんがw
911 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:23:54.20 ID:ZoC9kawY0.net] みんなわかっているくせにいつまでも指摘しないのな。 デッドロックは暗礁でも座礁でもない。壊れた錠前のことだ。 https://www.nhk.or.jp/bunken/summary/kotoba/gimon/170.html IT 用語では、並列処理時に異なるプロセスが、互いが専有するリソースの解放を求めて睨み合い、うごけなくなってしまうリソース競合のことだ。それ以外の意味はない。 一般用語に行き詰まりという意味があったとして、IT 用語としてリソース競合という意味のズバリの状況定義があるのだから、IT に正しい理解がある人間なら、行き詰まりという一般的な意味でこの語を IT 関連の説明に使うことは絶対に避ける。他人に誤解させるし、伝わらないし、紛
912 名前:らわしいのが目に見えているから。 色々な意味で、非常に恥ずかしい部類の誤用。強弁もたいがいにしておくべき。 [] [ここ壊れてます]
913 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 01:34:11.65 ID:ZoC9kawY0.net] ✕専有→○占有
914 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 02:21:50.02 ID:UIBkHtwX0.net] 誰かこいつらをガイジ小学校に叩き込んで来てくれや
915 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 07:39:00.23 ID:+xnJ+mOr0.net] >>873 壊れた錠前とかそういう比喩でなく、 膠着状態を指す英単語だよ a situation in which a disagreement cannot be settled.
916 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 09:42:42.07 ID:Lw2w7Q/c0.net] そもそもdead rockなんて勘違いしてる奴いないじゃん 座礁って言葉使ってる奴はいるけど身動き取れなくなると説明付き リソース競合ってまた狭い意味だし座礁と同じで狭い意味でデッドロックを使ってる デッドロック(IT限定)でもプロセス競合のほうがまだまし しかも競合それ自体には行き詰まりの意味はない あくまでも競合による行き詰まりがデッドロック
917 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 11:09:30.80 ID:UqMMY6BB0.net] 座礁がdead rockからきた勘違い deadlockは身動き取れなくなるという意味はない 語源はdead+lockだから「壊れた錠前」であってるけど 今はその意味で使われることはない
918 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 11:53:16.92 ID:lkW9PATM0.net] >>878 座礁もdeadlockで間違いないし、rockとの勘違いでもない ただ英単語としての意味とIT用語としての意味を混同していたことが問題なだけ
919 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:21:43.14 ID:NjF3KidV0.net] まだやってんのかい。 お前ら、仲いいな。
920 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:43:29.66 ID:yz4Jvoxzr.net] たんなるウェイトとデッドロックの区別がついてないバカがうだうだ言ってるだけ
921 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 12:57:34.74 ID:ht6Potv3d.net] >>873 壊れた錠前では無いよ。 行き詰まりそのもの。 リソースのlock自体、錠前のことではない。 名詞としてのlockは、カギで開け閉めするものに限られるので、リソースなどを指してない。輪留めとか、にっちもさっちもいかない状態とかそういうのを指す。 動詞としては、固定するだよ。 リソースを取得するのにカギが必要なら錠前だろうけど、カギは要らない。
922 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 13:49:40.40 ID:UqMMY6BB0.net] >>879 Pope Francis urges end to migrant boat deadlock https://www.bbc.co.uk/news/world-europe-46777844 ↑この船は座礁してるのかな?
923 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 14:28:12.06 ID:lkW9PATM0.net] 多義語を知らない>>883 辞書引くだけで良いのに引けないんだね
924 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 18:40:21.38 ID:UqMMY6BB0.net] >>884 座礁って書いてある辞書教えて そしたら納得するよ
925 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 19:44:50.29 ID:uR+ZT8QXD.net] >>885 納得はいらんけど、deadlockの自動詞、他動詞の意味調べてみ
926 名前:ハノン mailto:sage [2021/10/26(火) 20:18:17.44 ID:YaaA9sXD0.net] >>886 低頓する、低頓させる、「交渉は賃金問題で行き詰まった」、旺文社シニア英和辞典 行き詰まる、行き詰まらせる、低頓する、低頓させる、研究社リーダーズ英和辞典
927 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 20:48:48.62 ID:eY0tVbdGa.net] さすがに「言葉の意味は文脈に依存する」ってことを知らない人がこれだけ多いと日本の将来心配になるねw この業界でデッドロックと言えば普通は非同期処理の文脈におけるデッドロックのことを指す、 これは最初から言っているように間違いない。 ただ必ずそうとは限らないと言ってるだけ。 イキってる皆さんがどう思おうが自由だけど、メソッドが制御を返さない状態のことをその原因を問わずに 「デッドロック」と呼ぶ用法は普通に使われてる。
928 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 20:52:50.16 ID:eY0tVbdGa.net] そもそもデッドロックの意味
929 名前:とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw 誰がそんな話してるんだよw 俺は時々ニュース系の板とかでネトウヨ馬鹿にして楽しませてもらってるけど、 この追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って 連中そのものだねw [] [ここ壊れてます]
930 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 21:39:59.59 ID:5YjTtZfR0.net] >メソッドが制御を返さない状態のことをその原因を問わずに「デッドロック」と呼ぶ まあ、たんなるロック待ちをデッドロックというやつはたまにはいるけどな あきらかに間違ってるわけで、それが普通とかもう話にならん >追いつめられると別の矮小な問題にすり替えて誤魔化して逃げる まさに今のお前だな
931 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 21:43:21.08 ID:tLsOhANt0.net] あーあ ネトウヨとか言い出しちゃったよ
932 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:01:25.78 ID:UqMMY6BB0.net] >>886 名詞が動詞化したものだから意味に違いはないよ 自動詞は「デッドロックになる」こと 他動詞は「デッドロックをもたらす」こと デッドロックとは「相対する2つの勢力が拮抗して事態が進展しない状態」 DBMSのデッドロックも非同期処理のデッドロックも状況が特化してるだけで意味は同じ 座礁は船と岩礁の力が拮抗してるってことなら その辺に転がってる石ころもdead rockだね
933 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:18:18.56 ID:+xnJ+mOr0.net] >>892 deadlockの言う座礁する、座礁させるは日本語では比喩的な使われ方をする座礁だよ 交渉が座礁するとか交渉が暗礁に乗り上げるって意味での座礁 だから名詞じゃなく自(他)動詞
934 名前:デフォルトの名無しさん mailto:sage [2021/10/26(火) 22:27:49.42 ID:+xnJ+mOr0.net] つまりデッドロックマンは何もかも間違ってると言いたい
935 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 00:14:30.81 ID:un5zQ+BD0.net] >>893 「deadlockの言う座礁する、座礁させる」って何? どこから出てきたの? deadlockの言う? 交渉が座礁するとは日本語では言わない 交渉が暗礁に乗り上げたとしてもそれがデッドロックとは限らない 単なる待ち状態をデットロックと言ってるのと同じレベル
936 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:01:39.38 ID:hvQWVHhPD.net] >>895 少なくとも英辞郎には暗礁に乗り上げるって意味が載ってる 意味として膠着状態を指す慣用句としての暗礁に乗り上げるが使われてる
937 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:07:10.23 ID:gYjFdZWj0.net] Rock Is Dead !
938 名前:デフォルトの名無しさん mailto:sage [2021/10/27(水) 08:22:12.88 ID:thwndR3Q0.net] Rock is not dead.
939 名前:デフォルトの名無しさん [2021/10/27(水) 10:24:03.90 ID:t2iD5tO80.net] >そもそもデッドロックの意味とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw >誰がそんな話してるんだよw >追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って連中そのものだねw まさにこれ 話を逸らすついでにスレ流して汚点を忘れさせようとしてるのが観える
940 名前:ハノン mailto:sage [2021/10/27(水) 18:07:43.86 ID:2zkjN6asH.net] >>899 東大話法、てのが大昔流行っていましたね
941 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 08:02:34.91 ID:4uk/ll0/0.net] 連中…「組織」の者かな?
942 名前:デフォルトの名無しさん mailto:age [2021/11/02(火) 21:51:33.93 ID:4DiwsCtO0.net] ニコニコ弾幕ツールを作りたくてプログラミングとC#を初めて触ったのですが なにか参考になる動画や書籍資料等ないでしょうか? 簡単なメニュー程度なら作れるようになったんですがどうすれば弾幕打てるツールになるのか全く分かりません。 弾幕ツールソースとかでググってもそれっぽいのが全く出ず… 超初心者スレでも聞いたのですが回答もらえなかったのでこちらで…
943 名前:デフォルトの名無しさん mailto:sage [2021/11/02(火) 22:21:39.61 ID:SO0TQkZV0.net] >>902 ぐぐるんなら、「ニコニコ動画 コメント api」とかじゃね? ちょっと古いけど ttps://qiita.com/tor4kichi/items/74939b49954d3e72d789 こんな感じで以前は出来ていたようです が、今春にコメントサーバーがリニューアルされているようなので、おそらくは上記の記事そのままではなくなっていると思います https://blog.nicovideo.jp/niconews/141893.html ブラウ
944 名前:Uコントロール上でアレコレさせるのとどっちが楽かは知らん いずれにしても、言語そのものの知識以外の、httpだとかニコニコの仕様そのものだとかの知識の方が必要かと思います [] [ここ壊れてます]
945 名前:デフォルトの名無しさん [2021/11/02(火) 22:37:12.36 ID:crJtQlzP0.net] 勉強のためにやりたいのなら別だけど・・・・ 自分で使いたいとかそういう目的なら、ほとんど完成品みたいなものが既にある https://www.nuget.org/packages/NicoNico.Net/
946 名前:デフォルトの名無しさん mailto:sage [2021/11/02(火) 23:03:38.72 ID:4DiwsCtO0.net] >>903-904 回答ありがとうございます C#の知識だけじゃ実現できないのですね(;´Д`) C#の他にJavascriptとかCのAPIですか…3,4年はかかりそうですね… やったことが無駄にならないことが分かったので頑張ります
947 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 03:43:52.91 ID:Di9oQY4e0.net] 日にどれくらい時間かけるかにもよるけど早い人なら無学から始めても1ヶ月かからんやろ すでにほとんど完成品といえるようなパッケージがあるならなれてる人なら1日かからず完成する 始めて開発というものをするにあたって半年以上かかりそうなもんはモチベーション続かんから普通はおすすめできない もしこのコメントツールで年単位で掛かりそうだと感じたならもっと規模の小さい、長くても1ヶ月くらいで完成させられるかな?って想像できるようなものから始めたほうがいいと思うよ
948 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 08:25:21.70 ID:MLVf2VPVM.net] >>902 10/20にニコニコ動画関連総合ツールスレで質問して回答もらえなかった人? そこまでできるようにはなったんだ ニコ動の弾幕なのか、ニコ生の弾幕なのかわからないけど ・ネットアクセスのやり方(httpclientかなんか) ・WebSocketの使い方(ニコ生のみ) ・jsonの知識 ・非同期の使い方 はわかってないとできないと思う 以下を見て理解できるまでがんばって。以下のニコ生・ニコ動の説明は古くてそのまま使っても動きません。 ブラウザーのディペロッパーツールで解析してね。 ニコ生 https://qiita.com/tor4kichi/items/5c438aa11fea5422103b https://qiita.com/tor4kichi/items/4df5b11ec564bb8f8d16 ニコ動 https://qiita.com/tor4kichi/items/91550a71119f3878bfba
949 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 11:12:45.02 ID:s4xVDTJC0.net] >>905 Web関連は基本人間が理解出来る文字列でやり取りするから比較的難易度低い方 C#で作るならCの知識が必要になる場面なんて全くないはず Html、Css、JavaScriptの知識はどの言語で開発するにしても多少必要にはなってくるがそんな難しくはない
950 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 16:24:16.20 ID:XrFTraKdM.net] >>905 あなたが作りたいツールを作るにも10年ぐらい前ならもっと簡単な知識でつくれたんだけど、Flashからhtml5になった頃から技術的なレベルが高くなったのも一因 ニコ動、ニコ生にしても以下のステップを1つづつ目標にして。 1.ニコ動かニコ生のURLを入力してそのページの内容を取得して表示なり取得確認する 2.そのページから必要な情報を選択して取得する 3.ニコ生の場合は、その情報からwebsocketに接続して各種情報を取得 4.ニコ動の場合は、その情報からコメント情報を取得する たぶんこの辺までできれば次どうすればいいかはわかると思うよ
951 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 20:51:20.05 ID:b4M0oSaD0.net] 今時はIEコンポーネントブラウザを使わないからだよ ニコニコの場合は (1)Javascriptでブラウザの拡張機能を書く (2)Pythonでダウンローダーや巡回、予約 で大
952 名前:シだよね、C#の出番はあまりないん [] [ここ壊れてます]
953 名前:デフォルトの名無しさん [2021/11/05(金) 19:37:49.44 ID:1GMX4TDW0.net] API使わずにスクレイピングっていいのか?
954 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 21:29:05.81 ID:U9pi1OEC0.net] 非公式API使って制限回避してもいいぞ
955 名前:デフォルトの名無しさん mailto:sage [2021/11/05(金) 23:15:31.65 ID:/IlkeVzp0.net] 各サイトのルールは、robots.txt を見ればよい そこに、スクレイピングできる間隔などが書いてある
956 名前:デフォルトの名無しさん [2021/11/08(月) 19:23:08.09 ID:jl5nUU4op.net] SQLのパラメータって使いまわせなかったっけ? 例えば下みたいなSQLがあったとして string sql = "UPDATE HOGE_TBL SET HOGE = :hoge WHERE HOGE = :hoge "; パラメータが下1つだけだったら更新件数0件で上手く動かない… cmd.Parameters.Add(new OracleParameter(":hoge", "huga")); Javaだと上手く動くけどC#は明示的に分けないとダメな感じ?
957 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 19:27:49.03 ID:ZmPcj5XX0.net] hugaじゃなくてfugaじゃないかな
958 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 19:47:26.23 ID:eIDHMWNda.net] BindByName
959 名前:デフォルトの名無しさん [2021/11/09(火) 12:25:10.04 ID:+zMu32a8p.net] >>916 dクス
960 名前:デフォルトの名無しさん [2021/11/12(金) 14:47:41.59 ID:LR2kPQ3V6.net] 最近c言語習い始めた初心者なんですがwhile()のカッコ内の条件式に論理演算子を使うことはできますか もしできるならif文の時のように入力すればいいのでしょうか
961 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 14:56:20.52 ID:9PEUH50B0.net] >>918 ここはC#の相談室なんだが・・・ まあ、ifの書き方と同じで良いですよ。
962 名前:デフォルトの名無しさん mailto:sage [2021/11/13(土) 11:48:36.10 ID:WnzBfGlt0.net] C#10で文字列補間が大幅に最適化されたってことらしいけど、 stringオンリーの4個以内(Concatの最大引数以内)以外は$"{}"で繋げていった方がむしろパフォーマンス良くなるって認識でOK?
963 名前:デフォルトの名無しさん mailto:sage [2021/11/13(土) 12:46:38.78 ID:+IhS2fUi0.net] ベンチマーク取れば?
964 名前:デフォルトの名無しさん [2021/11/17(水) 00:43:34.98 ID:qSiAIVdk0.net] わけあってVisual Studioをインストールできない環境があるのですが、 その環境で Windows標準のC#コンパイラ(C:\Windows\WinSxS配下のcsc.exe) + Visual Studio Code でC#コンパイル環境を作成したいのですができますか? 以上、よろしくお願いいたします
965 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 02:16:31.13 ID:+JwFzM8Ra.net] できるけど君の場合どうせNuGetで積むんじゃね
966 名前:デフォルトの名無しさん [2021/11/17(水) 18:51:18.08 ID:qSiAIVdk0.net] >>923 積むかどうかは分からないですね 私は超能力者ではないので
967 名前:デフォルトの名無しさん [2021/11/17(水) 20:50:08.18 ID:iuNg9UQr0.net] ビスマルク「愚者は経験に学び、 賢者は歴史に学ぶ」
968 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 22:01:06.93 ID:GLXZB85w0.net] そもそもコンパイル環境なら、VS Codeすらいらないんじゃ
969 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 22:23:38.77 ID:oaCBMm/O0.net] VSはダメでVSCodeはインストールできるんだ よくわからない環境だな
970 名前:デフォルトの名無しさん [2021/11/17(水) 22:48:30.86 ID:OY6bKJls0.net] 普通の会社で使えるのは2017までなんだよな
971 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 23:11:54.33 ID:SfknQ7Tq0.net] うち2022買ったで
972 名前:デフォルトの名無しさん [2021/11/17(水) 23:14:07.67 ID:iuNg9UQr0.net] まだ2021年なのに?
973 名前:デフォルトの名無しさん mailto:hage [2021/11/18(木) 09:00:28.34 ID:+Wtl3GaA0.net] ジャップには分からんだろうが世界的には9月からはもう
974 名前:2022年だぞ [] [ここ壊れてます]
975 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 21:37:43.70 ID:cf0G7PVa0.net] じゃあ日本は4月からもう2022年になってるのか
976 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 01:11:50.72 ID:4qGzfQ8F0.net] コマンドが格納されたListを順番にサーバへ送信し、 1が返ってきたら次のコマンド送信、1以外かTimeoutしたら即中断みたいな処理を ractiveでサクッと書けますか? var cmdList=new List<string>{ cmd1, cmd2, ... }; cmdList .ToObservable() .TimeOut( ・・・ ) .SendCommand() .WaitResponse() .PostRecv(1だったら次のコマンド送信、1以外やタイムアウトなら処理中止); みたいな感じで。。
977 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 22:43:08.40 ID:F7Qzv69PM.net] cmdList .ForEach(x => { if(x.SendAsync(cts.Token).Result == 1 ) throw new Exception() });
978 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 22:58:08.09 ID:YK5Xmj5SM.net] var results = await cmdList .ToAsyncEnumerble() .SlectAwait(async (c) => await c.SendAsync(cts.Token)) .TakeWhileAwait(async (r) => r == 1) ToArrayAsync();
979 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 00:02:36.10 ID:Z3Hc+Mmaa.net] タイムアウトで値や例外が返ってくるタイプだったらいいけど 時間経過で勝手にタイムアウト判定しろよってタイプだと詰みそう
980 名前:925 mailto:sage [2021/11/21(日) 00:41:13.81 ID:7ZBVrJXA0.net] ReactiveExtentions(System.Reactive名前空間 ver5.0)を使ってます。 自分なりに書いてみましたがこのライブラリの使い方がよくわかってない状態です。 (疑問点をコメントに書きました。分かる方教えてください) IDisposable d = cmdList .ToObservable() .Timeout( TimeSpan.FromSeconds( 3000 ) ) .Select( cmd => { var res = this.SendCommand( cmd ) // 自作のコマンド送信関数; return res; } ) .Where( res => res == 1 ) .Subscribe( res => /* ここで次のコマンド送信を行う書き方が分からない*/ res.ToString(), ex => Debug.WriteLine( ex.Message /* Timeout発生時 */ ), ()=> Debug.WriteLine( "Complete" /* 全ての送信完了?それとも1つだけ送信完了? */ ) ); >>935 やはりToAsyncEnumerbleからアプローチするべきなんですかね。。
981 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 00:46:46.14 ID:7ZBVrJXA0.net] Timeout関数の中身は TimeSpan.FromMilliseconds( 3000 ) // 3秒 の間違いでした
982 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 10:42:16.16 ID:XHu2qeE/M.net] Rxは監視を行うもの 時系列に沿って要素が流れてくる時に使うもの なのである要素が流れてきた時に次の要素なんてのはまだ無い 要素が最初から揃ってるListから始めるからわからなくなる 最初から揃ってるなら普通にLinqかforeachを使う Listでなくストリームならこれでおk var d = CommandStream .Select(c => Send(c)) .Timeout(t) .TakeWhile(r => r == 1) .Subscribe();
983 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 11:57:57.31 ID:ceXBGTs50.net] 次元の違う配列ではArray.Copy出来ないのでしょうか。 例) var foo = new int[4]; var bar = new int[3, 4]; ArrayCopy(foo,0,bar,0,4); // 例外発生 "The specified arrays must have the same number of dimensions." 1個づつコピーするしかないのでしょうか?
984 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 12:19:49.36 ID:D7YZScOh0.net] プリミティブ数値型の配列ならBuffer.BlockCopyできるけど まあ多次元配列なんて肩身が狭いもんだから仕方ないね
985 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 12:40:02.71 ID:ceXBGTs50.net] classを配列に保存しているから、BlockCopyもダメなんですよね・・・ あまり数も多くないはずなので、1つずつコピー(代入)していきます。
986 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:17:59.80 ID:/7sxHGOs0.net] >>940 若干アンセーフだけど行ごとにならSpan利用すればマネージ型でも出来る for (int i = 0, len2 = b.GetLength(1); i < b.GetLength(0); i++) foo.CopyTo(MemoryMarshal.CreateSpan(ref bar[i, 0], len2));
987 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:21:12.71 ID:/7sxHGOs0.net] MemoryMarshal.CreateSpan(ref bar[i, 0], 5000)とかやっても確か例外でないから最新の注意を払う必要はある まぁこうやってもソースの長さがデスト以内であれば問題は生じないけど
988 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 04:59:13.07 ID:/1pFbOYv0.net] 入力を検知したときにメソッドを実行する処理において、 要素Aがnullでなく(エラー防止)、Aの子要素Boolがtrueの場合のみ処理をスキップしたい場合に いい書き方はありますか? !A.Bool でメソッドを実行にしてしまうとAがnullだったときに実行されなくなってしまうので…… ひとまずgotoを使って以下のようにしているのですが、もっとスマートな書き方ありますでしょうか if (Input) { if(A != null){ if(A.Bool){ goto INPUTSKIP; } } Method(); } INPUTSKIP:
989 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 08:06:18.80 ID:OKsF9IR00.net] null条件演算子 null合体演算子 で検索
990 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 08:23:25.29 ID:V78zeb460.net] >>945 こう? if (Input) { if (A != null && A.Bool) { // INPUTSKIP } else { Method(); } }
991 名前:デフォルトの名無しさん [2021/12/12(日) 09:36:50.05 ID:G8rzE1470.net] >>947 それを反転させて if (Input) { if (A == null || !A.Bool) { Method(); } }
992 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 10:16:02.74 ID:2rSkF5hnM.net] >>945 goto 使いたくないと言うなら A が null か、A.Bool が false の時に処理したいってことだから普通に if(A == null || !A.Bool){ 処理 } って書くか>>946 が言うnull条件演算子とnull合体演算子を使って if(!(A?.Bool ?? false)){ 処理 } でいける 個人的にはこの場合だと上の方がわかりやすいと思う
993 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 10:56:54.04 ID:MLGY87ca0.net] 後藤さんが出てくると素人臭が漂ってくるからな
994 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 12:26:50.16 ID:V78zeb460.net] 例外も後藤さんみたいなもんだが
995 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 12:48:33.01 ID:/1pFbOYv0.net] AがnullだったときにORで並べてA.Boolの条件式を使ってしまうとそんなもんないよってエラーを吐くのでは、 と思い込んでいたのですが大丈夫なんですね……! !A.Boolだけで判定したときに怒られたので頭凝り固まってました! ありがとうございました!
996 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:09:03.73 ID:I9KyYKSc0.net] >>952 いやショート サーキット評価だからエラーにならないだけ https://docs.microsoft.com/ja-jp/cpp/cpp/logical-or-operator-pipe-pipe?view=msvc-170
997 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:17:35.22 ID:/1pFbOYv0.net] >>953 ああーなるほど、ORの場合どれか1つでも満たされてれば実行されるから 左側が条件を満たしてたら右側はもうチェックされないのか!! 良いこと知れました! ありがとう!
998 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:23:43.83 ID:V78zeb460.net] vb.netのorだとエラーになる
999 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:31:38.41 ID:I9KyYKSc0.net] >>954 >>955 論理演算子2つ並べるのがショート サーキット評価
1000 名前:ネんだけど https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12181009427 次から初心者スレ行ってくれ [] [ここ壊れてます]
1001 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 14:02:55.63 ID:WWmfWzxPM.net] >>955 OrElse 使え >>956 > 論理演算子2つ並べるのがショート サーキット評価なんだけど とか言う玄人w
1002 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 14:06:00.32 ID:a4cuZ/Mwa.net] vb恐ろしいな。そんなのバグの元じゃん
1003 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 15:11:49.02 ID:happ85M4M.net] はあ? C# ⇔ VB.Net --------------------- & ⇔ And && ⇔ AndAlso | ⇔ Or || ⇔ OrElse ってなってるだけやぞ
1004 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 09:12:51.67 ID:7pnzZ4JB0.net] >>945 条件式をネストしたり&でつないだりと複雑にするのは難読性が高くなるから分けたほうがいいだろ どういう条件ならMthod()を呼ぶのか明確に if(Input){ //事前処理 judge=(A==null) ? true: //Aがnullのとき A.Bool==false ? true: //Aの子要素がfalseのとき false; //それ以外 if(judge) Method(); //共通処理 ... }
1005 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 09:51:11.81 ID:g+jxvcxo0.net] >>960 が分かりやすく見えない… >>948 が誰が見ても一目瞭然でいいと思うわ シンプルな条件分岐なんだからこだわる必要ない
1006 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 11:44:51.75 ID:zykNHKxZ0.net] skipするほうが例外的処理だろうからskip条件を明確にしてearly returnしたほうがいいと思う 論理式の細かい書き方よりも意図が伝わるかどうかのほうが大事 if (ShouldSkip(a)) { return; } Method(); bool ShouldSkip(A a) { return a?.Bool ?? false; }
1007 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:01:49.98 ID:z2L+bKXw0.net] メソッドにすんのはいいけど、>>945 が入力を検知したときメソッドを実行したいって言ってんだからその通りに書けばいい 設計書通りに条件分岐すりゃいいのに無駄に置き換えて実装する人多いけどなんなんだろうね if(入力検知(input, A)){ Method(); } bool 入力検知(bool input, A a){ return input && a != null && a.Bool; }
1008 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:22:24.69 ID:6wRfW5vFa.net] 昼飯食いながら適当だから何か勘違いしてるかもしれないけど、>>945 って要は ある条件を満たした時だけMethodを実行したい、それだけでしょ? だったら四の五の言わずに素直にそう書くのが一番じゃないの。 if( input && (!A?.Bool ?? false)) Method();
1009 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:29:51.31 ID:KmNdaGVTa.net] 求めてるのは「もっとスマートな書き方」だからな 主観的な問題だから、俺らが言えるのは「こういう書き方もある」ってのだけ 正解(どれが一番か)を決めれるのは本人だけ
1010 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:47:42.73 ID:6wRfW5vFa.net] コードでも文章でも読み手に「要するにそれってどういうこと?」って思わせないのが一番。 これもコードでも文章でもそうだけど、読みにくいものは書いた本人がそこをよく理解せずに書いている。
1011 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 15:06:50.29 ID:WUjUV8JM0.net] ReSharperが薦めるように書き換えたら、何をしてるのかわからなくなった。
1012 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 15:10:10.54 ID:pxTkbBAYM.net] 最近のc#はマルチパラダイムで構文が増えてカオスだ
1013 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 16:35:33.81 ID:zykNHKxZ0.net] >>963 ,964 >>945 を読む限りでは入力を検知する処理と 検知した後に特定の処理をスキップするかどうかを判断する処理は別じゃないのかな? 「A.Boolがtrueなら入力を検知しない(or 入力を無視する)」ってことなら 入力よりも先にA.Boolを確認するよね
1014 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 16:52:41.40 ID:KmNdaGVTa.net] ちなみに回答ざっと見てこんなだな こういうのはコードが長くなっても動作が分かりやすい方がいいと思う >>947 ,948,960 おk >>962 ,963 バグあり
1015 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:23:58.46 ID:s0FccnDO0.net] >>968 それ。言語の表現力が豊かでも、自分やチームで一貫性を担保するのが面倒ξ
1016 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 09:16:58.78 ID:cLXTODpXM.net] >>971 そして、コーディング規約が底辺プログラマーに合わせられて生産性が低下する
1017 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 20:46:07.43 ID:4rMew3mV0.net] どうせ好き勝手に言語機能使って上がる生産性なんて微々たるもん
1018 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 23:18:34.83 ID:gu+YKYdX0.net] .net の 1.1 で書くとめちゃくちゃ不便で絶望するぞ
1019 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 23:43:50.97 ID:5qKKFixV0.net] linqがある.NET Framework3.5ですら今これでやれって言われたら不便に感じるしなぁ 使えるものは使わせてもらった方が全然楽だわ
1020 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 08:20:32.57 ID:YtxEX99t0.net] 色々使えた方が個人的に楽だと思うのは否定しないが、もっともらしく「生産性が上がる」とか言っちゃうと 意外とそうでもなかったり。
1021 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 09:41:14.43 ID:flSodCtX0.net] >>974 特にList<T>が無いのはキツイわ
1022 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 12:10:36.77 ID:KtX6zlRp0.net] 心配しなくても今どき1.1で書いたり書かされたりすることはないでしょ
1023 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:03:58.38 ID:w2vh5jVl0.net] 1.1とか極端すぎるやろ
1024 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:14:56.34 ID:Jy+USlABM.net] 2.0の知識で止まってるヤツも多いよね
1025 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 16:57:55.56 ID:RMHVQ2YW0.net] さすがに今どきvar使うなとかLINQ使うなとか言われないよね?
1026 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 17:25:02.67 ID:ik5KT4gs0.net] >>981 var使うとわからなくなるというのは名称が明示的になってないだけだと思うわ
1027 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 17:31:22.22 ID:KBNxuXv0M.net] >>982 ハンガリアン記法?
1028 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 18:19:16.59 ID:UGnWEqDI0.net] MS公式はvar推奨してるけどさすがにintとかstringとか基本的な型はvarにはしないな
1029 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 21:30:02.16 ID:lA94GyTo0.net] 明示的に型を書かないとダメなところ以外全部varで書くよ
1030 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 21:44:12.20 ID:M2QFYQSl0.net] 最近はnew()で書けるようになったから、極力varはやめてる Hoge hoge = new(); 実装当初の想定通りlinqの戻りくらいかなvar、使うの。
1031 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 23:22:27.06 ID:l+MEhncN0.net] new()使えるのってc#いくつからだっけ
1032 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 23:43:54.17 ID:NZjG441V0.net] はやくおれのレベルまで上がって来い 上で待ってるぞ
1033 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 00:21:19.35 ID:R2Peltay0.net] new()で書けるようになったけど、コンストラクタで初期設定値渡すようにしちゃうから全然使わんなぁ。 セッター潰してコンストラクタで設定するのが好き
1034 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 07:48:14.53 ID:Ymr34XoE0.net] >>987 C# 9.0
1035 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 09:44:30.84 ID:P4pOcLuS0.net] C#がどんどんボクのしらないものになっていってる いっそC##やDと名乗っていただきたい (Dは既にある、は受け付けない)
1036 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 10:15:25.85 ID:80W3ywqF0.net] C#に毛が生えた程度だろ C丼でええがな
1037 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 10:54:52.18 ID:Ni3FtdydM.net] c井
1038 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:01:26.24 ID:DM4zUQcN0.net] C⛩
1039 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:42:40.19 ID:plhBUTFD0.net] C升
1040 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 11:47:41.44 ID:e2PzMi3oM.net] >>991 ほんと、氷川きよしくらい変わってしまった
1041 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 23:46:42.90 ID:vtDDQtO+0.net] if(item is {} a){ ... } null判定でこんな書き方あるんだな。Resharperさんに提案されて初めて知ったわ。 個人的にはあまり使いたくないけど。
1042 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 00:40:01.77 ID:fAwtu2PR0.net] >>997 それやるとaの色がローカル変数色にならず白のままになるのが不満なんだけど俺の環境だけか?
1043 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 02:39:12.84 ID:KpFo6Hw/0.net] C林
1044 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 11:21:38.48 ID:b89m5ifd0.net] >>997 C#9なら if (item is not null) って実に直感的に書けるから早くこっちにこいよ… ところでその式でaで受ける意味なくね?
1045 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 13:42:40.65 ID:KpFo6Hw/0.net] C極
1046 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 09:44:58.73 ID:QHfeHH9E0.net] WinFormsを独学でやっているのですが教えて下さい そこそこの規模のソフトは作れるようになってますが VSで開発していくうえで、フォルダ構成ってどう考えればいいですかね いままではDB関連をDBフォルダ フォームはFormにまとめてさらにその中に機能別にフォルダを 細かいクラスファイルはClassというフォルダに DBとの受け渡し(sql書いてFormとの受け渡しModelみたいなもの?)は Modelというフォルダにまとめています プロの皆様はチームで作っていかれる際に 会社によりけりかもしれませんが一般的なフォルダ構成の考え方ってあるんでしょうか
1047 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 09:58:37.55 ID:eMi6YEPC0.net] そんなもの存在しないから適当でいいよ まぁあえて口出しするならFormフォルダはFormクラスと名前が被るからやめとけって位かな
1048 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:00:48.95 ID:n0pWJPWXa.net] なんのフォルダなのか理解できない プロジェクト(visual studio上でのプロジェクト)内じゃフォルダ切ることはないな プロジェクトがある程度大きくなったらクラスライブラリに分ける
1049 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:16:13.92 ID:UEQjoSys0.net] シングルアセンブリ構造なのかな
1050 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:33:08.48 ID:QHfeHH9E0.net] >>1003 そうなんですね、気をつけます >>1004 たとえば画面数でも100超えて、機能部分のClassファイルも100越えてくると いちいち該当ファイル探すのが面倒でフォルダに分けたって感じです 前はPHPのフレームワークとか触ったときは たとえばcontroller model viewとフォルダも階層構造みたいになっていて そういう感覚もあります チームでやられていると、どこに何のファイルが散らばっているか わからなくなったりしないのですか? きちんと仕様書があるから関係ないのですかね やっぱりクラスライブラリ(DLL化?)もちゃんと理解しないと駄目ですよね 一人で作ってるので、DLL化するほうが手間な気がして避けてました
1051 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:44:47.17 ID:n0pWJPWXa.net] どこに何がは命名の問題もあるんじゃないかな classも変数も先頭、末尾にそれが何か分かるように名前つけてるから名前順にソートされてればすぐわかる
1052 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 10:53:09.81 ID:UEQjoSys0.net] >>1006 機能ごとにProjectを作るんだよ。
1053 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 1004日 15時間 55分 34秒
1054 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています