!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part158
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ fe7b-Nimo)
2023/03/26(日) 07:31:00.51ID:2LMOL5Ty0798デフォルトの名無しさん (ワッチョイ 8907-8W7i)
2023/06/16(金) 07:13:30.39ID:hLDZvlP60 複数のPCでプロセス間通信てどれかをサーバーにするしかないじゃん
リモートオブジェクトはなくなったぞ
https://learn.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-unavailable
> .NET リモート処理は、.NET 6 以降ではサポートされていません。 .NET リモート処理は、問題のあるアーキテクチャであると判断されました。 これは、現在サポートされていないアプリケーション ドメインとの間の通信に使用されています。 また、リモート処理にはランタイム サポートも必要で、維持するのに高いコストがかかります。
リモートオブジェクトはなくなったぞ
https://learn.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-unavailable
> .NET リモート処理は、.NET 6 以降ではサポートされていません。 .NET リモート処理は、問題のあるアーキテクチャであると判断されました。 これは、現在サポートされていないアプリケーション ドメインとの間の通信に使用されています。 また、リモート処理にはランタイム サポートも必要で、維持するのに高いコストがかかります。
799デフォルトの名無しさん (ワッチョイ 3102-2rqm)
2023/06/16(金) 08:13:22.22ID:LNSu1MfD0 複数のPCってのがざっくりしすぎてるな
1対多ならMinimalAPIでサーバ建てりゃいいんじゃね
詳細はググってくれ
1対多ならMinimalAPIでサーバ建てりゃいいんじゃね
詳細はググってくれ
800デフォルトの名無しさん (ワッチョイ a9e5-2rqm)
2023/06/16(金) 09:38:19.59ID:8cf3Z2YQ0 古いも何も、Socketで通信してようが他プロセスと通信する物はすべてプロセス間通信だろ
801デフォルトの名無しさん (アウアウウー Sadd-g1CP)
2023/06/16(金) 10:04:28.26ID:ly+Q1cW8a RPCとSocketIOを会話上で使い分けたいって意味かな
802デフォルトの名無しさん (ササクッテロラ Sp05-mItu)
2023/06/16(金) 10:39:19.11ID:ZjNkxhYgp いやいや実態が同じでも目的が違うだろ
803デフォルトの名無しさん (スフッ Sd33-pDI4)
2023/06/16(金) 12:48:25.83ID:AFoiPDKcd804デフォルトの名無しさん (オッペケ Sr05-VFpa)
2023/06/16(金) 13:37:11.38ID:JZEl94b2r やっぱ Mercurial だな。
805デフォルトの名無しさん (ワッチョイ b178-2rqm)
2023/06/16(金) 17:03:12.15ID:kBMaOVut0 bazaar だろ
806デフォルトの名無しさん (ブーイモ MMeb-BK+T)
2023/06/16(金) 17:19:58.24ID:wS8/ZvHAM >>797
どういうプロトコルでのプロセス間通信?
どういうプロトコルでのプロセス間通信?
807デフォルトの名無しさん (アウアウウー Sadd-8W7i)
2023/06/16(金) 17:58:26.69ID:xumbESuca >>803
サイズのことなら後で最適化されるぞw
サイズのことなら後で最適化されるぞw
808デフォルトの名無しさん (スップ Sd33-h5Ja)
2023/06/16(金) 20:02:10.64ID:BdjqvBhXd そういえば、IpcServer使ってる。
ちゃんと動いてるし、もう、変えたくないわぁ
ちゃんと動いてるし、もう、変えたくないわぁ
809デフォルトの名無しさん (スップ Sd33-h5Ja)
2023/06/16(金) 20:06:39.73ID:BdjqvBhXd ぎりぎりまで、.netcore系には移りたくないね
810デフォルトの名無しさん (オッペケ Sr05-Cr01)
2023/06/16(金) 22:22:57.11ID:koUma95Nr 既存のアプリケーションを移行したくないのはわかる
けど、null不許容参照型が使えないのはいまどきあり得ない
けど、null不許容参照型が使えないのはいまどきあり得ない
811デフォルトの名無しさん (ワッチョイ 1379-hEWj)
2023/06/16(金) 23:36:36.10ID:sUccxFc+0 これだからフレームワークありきの環境はダメなんだよ
やっぱC/C++しか信じられん!…ってなるのぉ?
やっぱC/C++しか信じられん!…ってなるのぉ?
812デフォルトの名無しさん (ワッチョイ 79ac-t2KC)
2023/06/17(土) 01:27:12.96ID:96RBnRrs0 金無限にあるならともかく、現実はフレームワーク使わんと採算とれないことがそこそこある
813デフォルトの名無しさん (ワッチョイ a2bd-L1I+)
2023/06/17(土) 05:59:53.37ID:3A62XWi80814デフォルトの名無しさん (ワッチョイ b1e5-C6j3)
2023/06/17(土) 08:16:10.20ID:uo5kyeT50 >>810
警告がうざったい……
警告がうざったい……
815デフォルトの名無しさん (ワッチョイ b6da-RnTl)
2023/06/21(水) 22:15:02.05ID:hW8H2hzX0 コンパイラのnullチェックもLinq to SQLが混じるとうまく働かないね。
まぁ限界があるのは分かる
まぁ限界があるのは分かる
816デフォルトの名無しさん (ワッチョイ d242-C6j3)
2023/06/22(木) 01:03:28.84ID:AGxh0AyX0 Linq To SQLは大昔に終わっているからうまく動かないかもな
817デフォルトの名無しさん (ワッチョイ 3274-hrKI)
2023/06/22(木) 04:35:53.17ID:CPcSxaDF0 わたしは今からLinq To SQLを勉強しようといろいろ川俣の本を買ったのですが。
818デフォルトの名無しさん (ワッチョイ 8554-dYQK)
2023/06/22(木) 05:01:31.04ID:Xft5ksI80 自分自身にとって明確な理由やメリットがあって勉強するならいいと思う。
理由もなく、存在を知ったから目的ないのに勉強するというなら勉強不要。
たとえ話になるけど、ガチでプロ選手目指す野球少年なら野球の練習する意味あるけど、
大谷の話題で野球に興味持ったニワカが、目的なく練習しても意味ないでしょ。
理由もなく、存在を知ったから目的ないのに勉強するというなら勉強不要。
たとえ話になるけど、ガチでプロ選手目指す野球少年なら野球の練習する意味あるけど、
大谷の話題で野球に興味持ったニワカが、目的なく練習しても意味ないでしょ。
819デフォルトの名無しさん (ワッチョイ ad7c-ZjIi)
2023/06/22(木) 05:23:50.74ID:fUhg+N3Z0 そうでも無いやろ
プロになる気が無くても野球やってみたら才能がある事に気付いたとかあるやん
プロの選手だって高校までは別の競技やってたとか2つ同時にやってたとかあるやん
プロになる気が無くても野球やってみたら才能がある事に気付いたとかあるやん
プロの選手だって高校までは別の競技やってたとか2つ同時にやってたとかあるやん
820デフォルトの名無しさん (ワッチョイ f642-C6j3)
2023/06/22(木) 07:28:29.12ID:oInj3jkO0 勉強するならLinq To SQLより後継のefやる方が賢いとは思う
具体的な仕事があるなら別だが
具体的な仕事があるなら別だが
821デフォルトの名無しさん (ワッチョイ 6107-Tk+b)
2023/06/22(木) 07:31:19.22ID:U7fCu9Ru0 efはefで欠点多いからなぁ
自分で選べるならDapperが最強
自分で選べるならDapperが最強
822デフォルトの名無しさん (ワッチョイ ad7c-ZjIi)
2023/06/22(木) 09:08:14.28ID:fUhg+N3Z0 WebなんかでステートレスならDapperで良いけどデスクトップアプリなんかでステートフルならEFの変更追跡なきゃだるいやん
用途で選べばいいんだよ
用途で選べばいいんだよ
823デフォルトの名無しさん (アウアウウー Sacd-Tk+b)
2023/06/22(木) 09:21:07.30ID:8AaELlpYa 変更追跡が役に立つ場面なんてほぼ無いよ
速度は無茶苦茶遅いし
どうしても追跡したいならDapperで使うクラスに変更通知やIEditableObjectでも仕込んでおいたほうがいい
速度は無茶苦茶遅いし
どうしても追跡したいならDapperで使うクラスに変更通知やIEditableObjectでも仕込んでおいたほうがいい
824デフォルトの名無しさん (スッップ Sdb2-6ESG)
2023/06/22(木) 13:34:23.63ID:iyk8obpJd そろそろ的外れなたとえ話は罪に問えるようにするべきだな
825デフォルトの名無しさん (ワッチョイ 22ea-hRAP)
2023/07/07(金) 20:47:23.54ID:BdypaOA90 visual studioのformでプロジェクトデザイナーの設定settings.settingsでint型の配列を使いたいん
[10]個ぐらいなんですけど、windowsFormでいい設定の保存方法ありますか?
[10]個ぐらいなんですけど、windowsFormでいい設定の保存方法ありますか?
826デフォルトの名無しさん (ワッチョイ 0610-Mrss)
2023/07/07(金) 22:10:36.42ID:VQ1+4DlV0 >>825
デザイナーからじゃなくて直接Properties/Settings.settings/Settings.Designer.csに書けばいけるよ
でもデザイナ触るとcs上書きされるからまた追記しないといけないけどね
https://ideone.com/tJGGHq
デザイナーからじゃなくて直接Properties/Settings.settings/Settings.Designer.csに書けばいけるよ
でもデザイナ触るとcs上書きされるからまた追記しないといけないけどね
https://ideone.com/tJGGHq
827デフォルトの名無しさん (ワッチョイ 22ea-hRAP)
2023/07/07(金) 22:51:58.76ID:BdypaOA90828デフォルトの名無しさん (アウアウウー Sabb-DX8j)
2023/07/07(金) 23:11:34.06ID:G77vHYnia なんでpartialクラス使わねーの?
829デフォルトの名無しさん (ワッチョイ 22ea-hRAP)
2023/07/07(金) 23:28:40.56ID:BdypaOA90 >>828
Settings.csの partial class Settingsを使えってことでしょうか?
Settings.csの partial class Settingsを使えってことでしょうか?
830デフォルトの名無しさん (アウアウウー Sabb-DX8j)
2023/07/07(金) 23:43:30.04ID:G77vHYnia >>829
そっちが人間が書き換える用のファイル
そっちが人間が書き換える用のファイル
831デフォルトの名無しさん (ワッチョイ 9fea-kkOg)
2023/07/08(土) 08:13:42.94ID:91Ogp97S0 >>830
サンクスですSettings.csに書けば上書きされないってことですね
サンクスですSettings.csに書けば上書きされないってことですね
832デフォルトの名無しさん (スッップ Sdbf-CFBc)
2023/07/09(日) 13:11:44.65ID:Dnv+EbFzd 通知領域のアイコンをクリックすると現れるメニューを複数列にしてみたいです
こういう場合は自作コントロールを作成する必要があると考えればよいですか?
この辺は未経験なので自分にはハードル高そうですが
昔から使わせて頂いてるMr.Clipboardというソフトウェアに類似するものを作ることが目標です。
こういう場合は自作コントロールを作成する必要があると考えればよいですか?
この辺は未経験なので自分にはハードル高そうですが
昔から使わせて頂いてるMr.Clipboardというソフトウェアに類似するものを作ることが目標です。
833デフォルトの名無しさん (スッップ Sdbf-CFBc)
2023/07/09(日) 13:23:58.06ID:Dnv+EbFzd ん~contextMenuStripとかをいじって自作コントロールを作るという高いハードルを越えるより
通知領域アイコンをクリックした時に、メニューに似せたフォームが、ちょうどメニューが表示されるような位置に現れるようにしたほうがいいのかな・・・実現可能性は高そう
Mr.Clipboardの作者さんはどうやってこういうものを作ったんだろう
通知領域アイコンをクリックした時に、メニューに似せたフォームが、ちょうどメニューが表示されるような位置に現れるようにしたほうがいいのかな・・・実現可能性は高そう
Mr.Clipboardの作者さんはどうやってこういうものを作ったんだろう
834デフォルトの名無しさん (オッペケ Sr0b-kkOg)
2023/07/09(日) 14:28:31.42ID:qTcsfTmnr 古そうなソフトウェアだから
そもそもContextMenuStripじゃなくてContextMenu(=COMCTL32)を使ってるんじゃないかな
使ったことないから知らんけどひょっとしたら何かデフォルトで2列表示できる機能が備わってたりして
そもそもContextMenuStripじゃなくてContextMenu(=COMCTL32)を使ってるんじゃないかな
使ったことないから知らんけどひょっとしたら何かデフォルトで2列表示できる機能が備わってたりして
835デフォルトの名無しさん (スッップ Sdbf-CFBc)
2023/07/09(日) 15:40:32.78ID:Dnv+EbFzd836デフォルトの名無しさん (ワッチョイ 3768-rqKn)
2023/07/09(日) 16:18:02.54ID:rFc2qelE0 現在進行形でC#の仕事してるけどプログラミングよりもgitとかのほうが難しい
マーキュリアル開いて出てきたMQ パッチ適用がどうたらって何のこと?
マーキュリアル開いて出てきたMQ パッチ適用がどうたらって何のこと?
837デフォルトの名無しさん (ワッチョイ 9f80-KChr)
2023/07/09(日) 16:26:49.16ID:W7Z8cVLl0 Git の質問かと思ったら、マーキュリアルの話始めたり
精神分裂症かな
精神分裂症かな
838デフォルトの名無しさん (ワッチョイ 9701-xBPm)
2023/07/10(月) 01:02:30.69ID:qL1vqKUB0 混在してるか移行中のPJで初心者故に両者がごっちゃになってるだけだとエスパーしてみます
839デフォルトの名無しさん (スップ Sd3f-mu37)
2023/07/10(月) 07:18:29.54ID:BXZpIYtLd 単に物を知らないのをバカにしたいだけで本気で精神分裂症とは思っとらんだろ
840デフォルトの名無しさん (ワッチョイ 9f80-KChr)
2023/07/10(月) 09:42:06.39ID:zUnHM/go0 C#ってプロジェクトを作らないとコンパイル出来ないんでしょうか?
main関数のあるHelloWorld.csだけでコンパイルするのは無理?
main関数のあるHelloWorld.csだけでコンパイルするのは無理?
841デフォルトの名無しさん (ワッチョイ f7c6-knyK)
2023/07/10(月) 09:50:21.18ID:jFNuf9xo0 csc.exeを直接実行すれば*.csだけでもコンパイルできるよ
Linux向けとかはどうか知らないけど
Linux向けとかはどうか知らないけど
842デフォルトの名無しさん (ササクッテロラ Sp0b-JJLP)
2023/07/10(月) 10:13:07.78ID:bDJ4URo4p >>840
C#がインタプリタ的に使えるのって案外知られて無いんだなぁ
C#がインタプリタ的に使えるのって案外知られて無いんだなぁ
843デフォルトの名無しさん (ワッチョイ 9f80-KChr)
2023/07/10(月) 10:33:54.46ID:zUnHM/go0844デフォルトの名無しさん (ワッチョイ 9f80-KChr)
2023/07/10(月) 10:59:12.77ID:zUnHM/go0845デフォルトの名無しさん (アウアウウー Sa9b-Pj0o)
2023/07/10(月) 12:41:26.24ID:h4a2e+7ia シェルスクリプト代わりにするならC#使うよりPowerShellの方が便利だから
batはそろそろ滅べ
batはそろそろ滅べ
846デフォルトの名無しさん (ワッチョイ bf79-CBkq)
2023/07/10(月) 12:44:12.34ID:pvSg+WfU0 powershellでええやん
847デフォルトの名無しさん (アウアウクー MM0b-xBPm)
2023/07/10(月) 13:19:11.50ID:otun5GpPM batとの互換性が中途半端なのがイラつきますけどね
848デフォルトの名無しさん (アウアウウー Sa9b-Pj0o)
2023/07/10(月) 14:17:36.82ID:h4a2e+7ia849デフォルトの名無しさん (ブーイモ MM8f-9ZAg)
2023/07/11(火) 22:56:21.27ID:0HX/1I5LM talkで質問集まってるみたいだから向こうに行くかな
850デフォルトの名無しさん (スププ Sdbf-1L5A)
2023/07/12(水) 01:00:39.52ID:WP87K7PTd おう、二度と戻ってくるなよ
851デフォルトの名無しさん (オッペケ Sr0b-B87o)
2023/07/14(金) 11:09:10.37ID:SW9fkks0r 少しはここもまともになるかな
852デフォルトの名無しさん (オッペケ Sr0b-jHc6)
2023/07/14(金) 11:21:59.88ID:gWjfvyvyr プログラム板住人誰も移住してなさそうだから変わらないんじゃない?
853デフォルトの名無しさん (ワッチョイ 7f2d-/79E)
2023/07/14(金) 11:29:58.62ID:FrJI/jtz0 あっちはスレッドだけ出来てて中身が空なのばっかりじゃん
C#関連スレは全て1件もレス付いてない
C#関連スレは全て1件もレス付いてない
854デフォルトの名無しさん (オッペケ Sr0b-WUNe)
2023/07/14(金) 13:15:57.44ID:o+Lvn4Uxr jane styleってC#で開発したって聞いたが勘違いかな
855デフォルトの名無しさん (ワッチョイ 57a7-xgtz)
2023/07/14(金) 13:19:10.56ID:0qf2Hag/0 Delphiだから勘違いだね
Delphiの発明者が後のC#の発明者と同一人物だからそういう勘違いが生まれたのでは
Delphiの発明者が後のC#の発明者と同一人物だからそういう勘違いが生まれたのでは
856デフォルトの名無しさん (スププ Sdbf-Gz7C)
2023/07/14(金) 17:53:33.20ID:L1fXIk/+d 発明されたんだ
857デフォルトの名無しさん (ワッチョイ 95ad-tdBp)
2023/07/15(土) 12:52:20.24ID:x4tryG3A0 初心者です。
非同期メソッドにCancellationTokenを渡して、エラーハンドリングを行う必要があることを知りました。CancellationTokenSourceからCancellationTokenを作成して、非同期メソッドに渡していくところまではできました。ただ、ネストが深い非同期メソッド内でトークンをキャンセルしたいときに、どのようにキャンセルすれば良いのか分からない状況です。
非同期メソッドからCancellationTokenSourceのCancelメソッドはどのように呼べば良いのでしょうか。
非同期メソッドにCancellationTokenを渡して、エラーハンドリングを行う必要があることを知りました。CancellationTokenSourceからCancellationTokenを作成して、非同期メソッドに渡していくところまではできました。ただ、ネストが深い非同期メソッド内でトークンをキャンセルしたいときに、どのようにキャンセルすれば良いのか分からない状況です。
非同期メソッドからCancellationTokenSourceのCancelメソッドはどのように呼べば良いのでしょうか。
858デフォルトの名無しさん (ワッチョイ 665f-bpoS)
2023/07/15(土) 12:56:18.34ID:IVtLjRqQ0 【えっ】Perlに未来はあるのか?【終わり?】
859デフォルトの名無しさん (JP 0H62-9/0y)
2023/07/15(土) 13:15:08.16ID:KExn0jd0H トークンをキャンセルする権限を持ってるのは非同期処理側じゃなくて呼び出し元だと思うんだけど・・・
(だからcancellationTokenSourceを持ってる人だけがCancel()を実行できる)
呼び出し元から指図されたわけじゃないけど自発的にキャンセルしたいってことなら
throw new OperationCanceledException(token)
とでもすればいいんじゃないかな
(だからcancellationTokenSourceを持ってる人だけがCancel()を実行できる)
呼び出し元から指図されたわけじゃないけど自発的にキャンセルしたいってことなら
throw new OperationCanceledException(token)
とでもすればいいんじゃないかな
860デフォルトの名無しさん (ワッチョイ ca2d-2eqx)
2023/07/15(土) 13:42:20.93ID:m7eEyKEv0 それはtokenの状態と整合性取れないし不自然だろう
普通に(キャンセルしたいと判断した)要因に合った例外使えば済む話だ
普通に(キャンセルしたいと判断した)要因に合った例外使えば済む話だ
861デフォルトの名無しさん (ワッチョイ 95ad-tdBp)
2023/07/15(土) 15:05:06.38ID:x4tryG3A0862デフォルトの名無しさん (ワッチョイ ca2d-2eqx)
2023/07/15(土) 16:17:24.24ID:m7eEyKEv0 >>861
awaitしない非同期メソッドのタスクにContinueWith()で後続タスクを作って、その中でキャンセルかな。
後続タスクの実行条件はConinueWith()の引数にTaskContinuationOptionsを指定すれば変更出来る。
(エラーが起きた時のみ実行するとか)
awaitしない非同期メソッドのタスクにContinueWith()で後続タスクを作って、その中でキャンセルかな。
後続タスクの実行条件はConinueWith()の引数にTaskContinuationOptionsを指定すれば変更出来る。
(エラーが起きた時のみ実行するとか)
863デフォルトの名無しさん (スッップ Sd94-XM1G)
2023/07/15(土) 17:39:44.49ID:q/a2phH1d windowsアプリ作る時にform2の幅をコンストラクタ内で指定しても
136未満だと勝手に136に広げられてしまうんだね
知らなくて原因究明するのに時間かかった
136未満だと勝手に136に広げられてしまうんだね
知らなくて原因究明するのに時間かかった
864デフォルトの名無しさん (ワッチョイ 87e5-XQTJ)
2023/07/17(月) 11:07:42.07ID:fKATz6pi0 MinimumSizeにそう設定されてるだけでは
865デフォルトの名無しさん (ワッチョイ ca2d-2eqx)
2023/07/17(月) 12:47:25.02ID:oq1oEUQ30866デフォルトの名無しさん (ワッチョイ 3210-2eqx)
2023/07/17(月) 21:11:29.34ID:hjrHtCYP0 自作クラスのインスタンス化したときに、
そのインスタンスのプロパティを設定するやりかた? を教えてください。
うまい言い方ができないので、例を示します。
自作クラスで
class Square
{
double width
double height
}
があったとして、
Square square = new Square(){width = 3, height =2}
としたならば、
console.Writeline (square.ToString())
とすると
6
と表示されるようなイメージです。
何がしたいのかというと、 IPropertyChanged を使って、中の
プロパティが変化したときに、square が変わったということを認知したいのです。
そのインスタンスのプロパティを設定するやりかた? を教えてください。
うまい言い方ができないので、例を示します。
自作クラスで
class Square
{
double width
double height
}
があったとして、
Square square = new Square(){width = 3, height =2}
としたならば、
console.Writeline (square.ToString())
とすると
6
と表示されるようなイメージです。
何がしたいのかというと、 IPropertyChanged を使って、中の
プロパティが変化したときに、square が変わったということを認知したいのです。
867デフォルトの名無しさん (ワッチョイ 3279-EJzg)
2023/07/18(火) 02:03:58.47ID:BpIlHiPB0 Writelineで6を表示したければToStringをoverrideしてやればいいだろうまでは思いましたが
貼られたコードと「何がしたいのかというと」が全く繋がってなくて、恐らくこれは誰も質問を理解できてない状況ではないでしょうか
私の感想としてはIPropertyChangedとやらを使いたければ使えばいいだけの話ではないでしょうか
貼られたコードと「何がしたいのかというと」が全く繋がってなくて、恐らくこれは誰も質問を理解できてない状況ではないでしょうか
私の感想としてはIPropertyChangedとやらを使いたければ使えばいいだけの話ではないでしょうか
868デフォルトの名無しさん (ワッチョイ ca2d-2eqx)
2023/07/18(火) 02:28:36.72ID:GDp0BnYT0 例には書いてないけどIPropertyChangedイベントを購読して、イベントが来たらConsole.WriteLine()するんでしょう
で、IPropertyChangedの実装方法が知りたいと
public class Square : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private void SetProperty< T >( ref T field, T value, [CallerMemberName]string propertyName = null )
{
if ( field.Equals( value ) )
{
return;
}
field = value;
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
}
private double _width;
public double Width
{
set => SetProperty( ref _width, value );
get => _width;
}
private double _height;
public double Height
{
set => SetProperty( ref _height, value );
get => _height;
}
}
で、IPropertyChangedの実装方法が知りたいと
public class Square : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private void SetProperty< T >( ref T field, T value, [CallerMemberName]string propertyName = null )
{
if ( field.Equals( value ) )
{
return;
}
field = value;
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
}
private double _width;
public double Width
{
set => SetProperty( ref _width, value );
get => _width;
}
private double _height;
public double Height
{
set => SetProperty( ref _height, value );
get => _height;
}
}
869デフォルトの名無しさん (ワッチョイ 87e5-XQTJ)
2023/07/18(火) 08:44:49.63ID:3b5O2M5n0870デフォルトの名無しさん (スッップ Sd94-XM1G)
2023/07/18(火) 10:03:44.12ID:W6YFjoCEd >>865
>>869
はーやっぱり知識ある人は知ってるんですねー
こういう理屈じゃないところでいちいち悩まないといけないのが大変ですわ
まったく別の話なんですけど、
今これ>>832作ってて面白いこと気づきました
MouseClickイベントって右クリック・左クリック別に処理を分けられないじゃないですか
e.Button == MouseButton.Left とかが使えるMouseDown使えって言われるんですけど
bool isRightClickみたいなフィールドつくって、MouseDownのイベントハンドラで右・左判別して結果をisRightClickに設定
んで、MouseDownイベントの直後にMouseClickイベントも発生するからこいつのハンドラでisRightClickを取得して右・左別に処理わけることができた!
ってこれもみんな普通にやってんのかな・・・自分としては大発見なのだが。
今左右クリックやD&Dで細かい動きを作ってるんでこれは貴重な発見だった
>>869
はーやっぱり知識ある人は知ってるんですねー
こういう理屈じゃないところでいちいち悩まないといけないのが大変ですわ
まったく別の話なんですけど、
今これ>>832作ってて面白いこと気づきました
MouseClickイベントって右クリック・左クリック別に処理を分けられないじゃないですか
e.Button == MouseButton.Left とかが使えるMouseDown使えって言われるんですけど
bool isRightClickみたいなフィールドつくって、MouseDownのイベントハンドラで右・左判別して結果をisRightClickに設定
んで、MouseDownイベントの直後にMouseClickイベントも発生するからこいつのハンドラでisRightClickを取得して右・左別に処理わけることができた!
ってこれもみんな普通にやってんのかな・・・自分としては大発見なのだが。
今左右クリックやD&Dで細かい動きを作ってるんでこれは貴重な発見だった
871デフォルトの名無しさん (スププ Sd94-uP9V)
2023/07/18(火) 10:04:51.17ID:5Ch5Zuv0d >>867
>>868
ありがとうございます
質問のしかたが悪くうまく伝わっていないのですが回答は知りたかったことの一部でもありその部分については理解しました。
public class Hoge :IpropertyChanged
{
public Square square
}
とした時に
squareが値をもっていないことから、methodでsquare.widthの値を変えたとしてもsquareか変化したことを認識できないとの理解です
SquareにIPropertyChangedを噛ませてhogeのpropertyが変わったとする方法もあるのかも知れませんがsquare自身に値を持たせる方法があったら教えて下さい
>>868
ありがとうございます
質問のしかたが悪くうまく伝わっていないのですが回答は知りたかったことの一部でもありその部分については理解しました。
public class Hoge :IpropertyChanged
{
public Square square
}
とした時に
squareが値をもっていないことから、methodでsquare.widthの値を変えたとしてもsquareか変化したことを認識できないとの理解です
SquareにIPropertyChangedを噛ませてhogeのpropertyが変わったとする方法もあるのかも知れませんがsquare自身に値を持たせる方法があったら教えて下さい
872デフォルトの名無しさん (ワッチョイ 87e5-XQTJ)
2023/07/18(火) 10:25:56.29ID:3b5O2M5n0873デフォルトの名無しさん (スッップ Sd94-XM1G)
2023/07/18(火) 11:52:13.49ID:W6YFjoCEd >>872
今いろいろ確認して、間違えてたことが分かりました
ごめんなさい
複数のラベルをForm上に動的配置したうえで、このラベル全てにクリック系のイベントを追加したんです。
この際、イベントハンドラも自分でコードを書いたのですが、Label_MouseClickイベントハンドラの引数である e の型を、間違えてMouseEventArgsではなくEventArgsとしていたため、e.Buttonが使えなかったというオチでした。
e.Buttonが使えない点を除いて問題なく動いていたので気づきませんでした
ふぅ・・・何やってんだか・・・
今いろいろ確認して、間違えてたことが分かりました
ごめんなさい
複数のラベルをForm上に動的配置したうえで、このラベル全てにクリック系のイベントを追加したんです。
この際、イベントハンドラも自分でコードを書いたのですが、Label_MouseClickイベントハンドラの引数である e の型を、間違えてMouseEventArgsではなくEventArgsとしていたため、e.Buttonが使えなかったというオチでした。
e.Buttonが使えない点を除いて問題なく動いていたので気づきませんでした
ふぅ・・・何やってんだか・・・
874デフォルトの名無しさん (スッップ Sd94-XM1G)
2023/07/18(火) 12:01:06.39ID:W6YFjoCEd MouseDown使わないといけないのはVBAでした
知識がぐちゃぐちゃになってました
知識がぐちゃぐちゃになってました
875デフォルトの名無しさん (ワッチョイ e979-9/0y)
2023/07/18(火) 13:43:10.65ID:hAXktsXG0 赤あげて、白あげて、白下げないで、赤下げる♪
左押して、右押して、右離さずに、左離す♪
左押して、右押して、右離さずに、左離す♪
876デフォルトの名無しさん (ワッチョイ 73ae-/jfo)
2023/07/18(火) 14:42:32.76ID:INtka+wY0 VBAはVB.netに仕様変更する気が無いんだろうな・・・
877デフォルトの名無しさん (ワッチョイ a6cd-LhHw)
2023/07/18(火) 15:08:54.43ID:ss/yk/UI0 vb6言語より環境が古くさすぎて触るきにならん
出力して、vscodeでやって取り込みもあるけどいまいち
出力して、vscodeでやって取り込みもあるけどいまいち
878デフォルトの名無しさん (ワッチョイ 4dc6-l/Dq)
2023/07/18(火) 16:00:19.51ID:zVxGTRP30 >>871
細かいけどINotifyPropertyChangedじゃない?
SquareにINotifyPropertyChangedを実装して、
Hogeの方でこういう風に
Square square {
get { return _square; }
set {
if (_square is not null) _square.PropertyChanged -= OnSquareChanged;
this._square = value;
if (value is not null) _square.PropertyChanged += OnSquareChanged;
}
}
void OnSquareChanged(object sender, PropertyChangedArgs e) {
this.OnPropertyChanged(nameof(this.square));
}
細かいけどINotifyPropertyChangedじゃない?
SquareにINotifyPropertyChangedを実装して、
Hogeの方でこういう風に
Square square {
get { return _square; }
set {
if (_square is not null) _square.PropertyChanged -= OnSquareChanged;
this._square = value;
if (value is not null) _square.PropertyChanged += OnSquareChanged;
}
}
void OnSquareChanged(object sender, PropertyChangedArgs e) {
this.OnPropertyChanged(nameof(this.square));
}
879デフォルトの名無しさん (ラクッペペ MM34-iMTa)
2023/07/18(火) 16:06:27.35ID:vLiOabGzM VBA - VisualBasic
https://learn.microsoft.com/ja-jp/office/vba/library-reference/concepts/getting-started-with-vba-in-office
Office add-ins - C#
https://learn.microsoft.com/ja-jp/office/dev/add-ins/overview/office-add-ins
Vsto - C#
https://learn.microsoft.com/ja-jp/visualstudio/vsto/create-vsto-add-ins-for-office-by-using-visual-studio
Office Scripts - TypeScript(JavaScript)
https://learn.microsoft.com/ja-jp/office/dev/scripts/overview/excel
https://learn.microsoft.com/ja-jp/office/vba/library-reference/concepts/getting-started-with-vba-in-office
Office add-ins - C#
https://learn.microsoft.com/ja-jp/office/dev/add-ins/overview/office-add-ins
Vsto - C#
https://learn.microsoft.com/ja-jp/visualstudio/vsto/create-vsto-add-ins-for-office-by-using-visual-studio
Office Scripts - TypeScript(JavaScript)
https://learn.microsoft.com/ja-jp/office/dev/scripts/overview/excel
880デフォルトの名無しさん (ワッチョイ d010-uD+5)
2023/07/18(火) 17:40:37.17ID:HtITPTeb0 871が言ってる値が何のことかよくわからないな
>square自身に値を持たせる方法
>square自身に値を持たせる方法
881デフォルトの名無しさん (スップ Sd00-IoCj)
2023/07/18(火) 17:59:36.33ID:uMqw2ex7d まず環境書けとか色々突っ込み所がありすぎて暑いしで萎えた
おまえら頑張れよ
おまえら頑張れよ
882デフォルトの名無しさん (ワッチョイ f62f-NBo5)
2023/07/18(火) 21:18:14.67ID:ZtgGANuh0883デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/18(火) 22:23:27.30ID:5UWIDgazM お前らも含めてだが…基本的なことを勘違いしてるんだろう
IpropertyChangedが必要なのかも怪しいがそれは置いておく
通常似た様なものがあった場合
面積に相当するAreaプロパティが設定されている
binding対象はHoge.Square.Areaに普通はする
さて、
WidthやHeightが変更になった場合にAreaはその都度変化を通知して欲しいのかどうかも気になる
WidthとHeightを同時に変更したい場合メソッドを使って適切に変更しないとゴミがでるぞ
IpropertyChangedが必要なのかも怪しいがそれは置いておく
通常似た様なものがあった場合
面積に相当するAreaプロパティが設定されている
binding対象はHoge.Square.Areaに普通はする
さて、
WidthやHeightが変更になった場合にAreaはその都度変化を通知して欲しいのかどうかも気になる
WidthとHeightを同時に変更したい場合メソッドを使って適切に変更しないとゴミがでるぞ
884デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/18(火) 22:33:21.86ID:5UWIDgazM Squareの値は各種プロパティを持ったオブジェクト自体でありそれを面積とみなすのはおかしいと言うこと
ToString()をoverrideして面積を出すも間違っている
ToString()で出すのは
四角形 幅:3 高さ:4 面積:12
と言う各種情報
ToString()をoverrideして面積を出すも間違っている
ToString()で出すのは
四角形 幅:3 高さ:4 面積:12
と言う各種情報
885デフォルトの名無しさん (ワッチョイ 3210-NBo5)
2023/07/18(火) 23:28:46.06ID:HED9e7490886デフォルトの名無しさん (ワッチョイ 52da-0QNR)
2023/07/19(水) 12:26:43.18ID:DPJDdup00 Func<T, bool>を受け取る引数にPredicate<T>を渡せないのは何故でしょうか?
887デフォルトの名無しさん (ワッチョイ 4dc6-l/Dq)
2023/07/19(水) 13:17:55.70ID:rfnRytk30 型が違うから
class Hoge { public string Piyo; }
class Fuga { public string Piyo; }
と同じメンバを持った2つのクラスがあっても
void Test(Hoge hoge) { ... }
にFugaを渡せないのと同じ
class Hoge { public string Piyo; }
class Fuga { public string Piyo; }
と同じメンバを持った2つのクラスがあっても
void Test(Hoge hoge) { ... }
にFugaを渡せないのと同じ
888デフォルトの名無しさん (ブーイモ MM69-IGBM)
2023/07/19(水) 13:33:43.83ID:Iak4bgJxM hoge(pred.Invoke)で渡せる
889デフォルトの名無しさん (ワッチョイ 52da-0QNR)
2023/07/19(水) 13:52:39.72ID:DPJDdup00 なるほど。
Predicate<T>ってFunc<T, bool>のシンタックスシュガーかと勝手に勘違いしてましたが、完全に別の型ってことですね。
ありがとうございます
Predicate<T>ってFunc<T, bool>のシンタックスシュガーかと勝手に勘違いしてましたが、完全に別の型ってことですね。
ありがとうございます
890デフォルトの名無しさん (ワッチョイ ce6e-rP6O)
2023/07/20(木) 19:04:03.42ID:oZtgKOtx0 非同期処理について質問です。業務でWPFいじってるんですけど
1 起動画面→2 起動画面表示してる間に重い処理とか色々→3 ログイン画面→4 メイン画面
という流れになっています。それで重い処理の部分がtask runになっていてあぁ非同期処理ってやつかと
なんですがやたら起動画面が長いんです。デバッグしてみるとその重い処理が実行されてるとき他の処理は実行されてなくて
結局普通に1〜4が一直線に進んでるだけじゃない?と
自分の理解だと非同期ってその処理をどっか他の場所でやっといてもらってそれ以外は全部通常通りに流れると
この場合だとたとえば3や4のウインドウが出る処理が進んでいってもその裏で重い処理をやってるみたいな
2の部分が短くなるから起動画面も当然短くなるはずだろ……と思ってたんですが
非同期ってそういうもんじゃないんでしょうか
1 起動画面→2 起動画面表示してる間に重い処理とか色々→3 ログイン画面→4 メイン画面
という流れになっています。それで重い処理の部分がtask runになっていてあぁ非同期処理ってやつかと
なんですがやたら起動画面が長いんです。デバッグしてみるとその重い処理が実行されてるとき他の処理は実行されてなくて
結局普通に1〜4が一直線に進んでるだけじゃない?と
自分の理解だと非同期ってその処理をどっか他の場所でやっといてもらってそれ以外は全部通常通りに流れると
この場合だとたとえば3や4のウインドウが出る処理が進んでいってもその裏で重い処理をやってるみたいな
2の部分が短くなるから起動画面も当然短くなるはずだろ……と思ってたんですが
非同期ってそういうもんじゃないんでしょうか
891デフォルトの名無しさん (ワンミングク MM9b-Q4Hq)
2023/07/20(木) 20:07:28.14ID:4+aEc/KWM ただ固まらないように使ってるだけじゃないの
892デフォルトの名無しさん (スップ Sd00-m3tO)
2023/07/20(木) 20:07:31.46ID:GDwei+myd 2の重い処理でUIスレッドを使っていて、
3ログイン画面でもUIスレッドを使うので、
3のレンダリングが遅延しているのかも
と、先生は仰っている
3ログイン画面でもUIスレッドを使うので、
3のレンダリングが遅延しているのかも
と、先生は仰っている
893デフォルトの名無しさん (ワッチョイ b6d6-2eqx)
2023/07/20(木) 20:29:02.94ID:etRvguBb0 たぶん2の実行中に1が固まらない(アニメーションしたりマウス操作等に反応する)ようにしてるだけだな
2が完了したら3って仕様なんだろ
2が完了したら3って仕様なんだろ
894デフォルトの名無しさん (ワッチョイ 56bd-rqn1)
2023/07/21(金) 00:30:10.37ID:3tiQJRjE0 その重い処理というのは、ログイン画面やメイン画面までに完了させる必要のない処理なの?
895デフォルトの名無しさん (オイコラミネオ MM71-rqn1)
2023/07/21(金) 01:04:23.20ID:i7pkSIZ0M 普通だろ
2で初期化
それが終わらないとログインすらさせない
当たり前
非同期はいわゆる並列処理ではない
処理してる間にGUIが固まらないようにしてるだけで
2で初期化
それが終わらないとログインすらさせない
当たり前
非同期はいわゆる並列処理ではない
処理してる間にGUIが固まらないようにしてるだけで
896デフォルトの名無しさん (ワッチョイ 87e5-XQTJ)
2023/07/21(金) 08:46:35.27ID:cgj6JgkV0 起動時にまずスプラッシュ画面やら表示して裏で初期化処理ガーッとやってメイン画面が出てくるアプリケーション、ごまんとあるやろ
897デフォルトの名無しさん (オッペケ Src1-YWw1)
2023/07/21(金) 08:48:39.50ID:EGVnYM7fr 非同期処理って偉そうな名前ついてるけどUIが固まらないようにするためだけの存在なんだよな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 43歳の元NHKアナ・竹中知華、発売グラビアがランキングで堂々の1位「えぐすぎる」「素晴らしい」「もっと出して」 [muffin★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- ラーメン屋「日高屋が安いせいで客が来ない!日高屋はもっと値上げしろ!」 [449534113]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
