[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part137 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part137 http://mevius.5ch.net/test/read.cgi/tech/1523004019/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
973: デフォルトの名無しさん (ワッチョイ 4aeb-xcqf) [sage] 2018/06/04(月) 21:48:02.60 ID:9+XsYcyB0 Windows.Forms で WndProc を override して自分のコードを加えているのですが デバッガで進めていくと、その中に突入してしまいます。 InitializeComponent の中みたいに、デバッガが入らなくする宣言みたいなものなかったですか? http://mevius.5ch.net/test/read.cgi/tech/1523004019/973
974: デフォルトの名無しさん (アウアウウー Sa09-CKCa) [sage] 2018/06/04(月) 21:49:06.62 ID:BHtXacEqa >>973 debuggerstepthrough http://mevius.5ch.net/test/read.cgi/tech/1523004019/974
975: デフォルトの名無しさん (ワッチョイ b117-NLsb) [sage] 2018/06/04(月) 21:56:07.60 ID:Uz3WpYRO0 >>970 Mono Releases | Mono http://www.mono-project.com/docs/about-mono/releases/ http://mevius.5ch.net/test/read.cgi/tech/1523004019/975
976: デフォルトの名無しさん (ワッチョイ 4e8b-fUxx) [sage] 2018/06/04(月) 23:32:00.59 ID:054Q3E4O0 メインクラスとシリアル通信クラスの2つを使っています シリアル通信の受信完了でイベントをメイン側に発生させることら可能でしょうか。受信完了したらメイン側から受信データを取りに行くようにしたいのですが。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/976
977: デフォルトの名無しさん (アウアウエー Sa22-UB1l) [sage] 2018/06/05(火) 00:07:28.69 ID:jE9yEXCCa >>976 何でそうなるのw 発想が逆だってw そのシリア通信を担当するクラスSがデータ受信を通知するイベントを発生させて 受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw ついでに言えば受信データもEventArgs使って渡してしまえばいい http://mevius.5ch.net/test/read.cgi/tech/1523004019/977
978: デフォルトの名無しさん (ワッチョイ d681-gTal) [sage] 2018/06/05(火) 00:33:25.52 ID:liKML/cX0 しょうがねえだろ初心者なんだから http://mevius.5ch.net/test/read.cgi/tech/1523004019/978
979: 976 (ブーイモ MMbe-fUxx) [sage] 2018/06/05(火) 07:18:51.35 ID:ByFVOB9IM >>977 やりたいのことはそれなんですよw 説明が下手ですいません 厳密にはデータを受けた事が分かったらメイン側は受信データの内容を解釈するクラスに送って処理分岐という形にしようかと思ってます。 用語や処理の知識がおいついてきてないので、あれを応用しようという感じにならず、調べるためのキーワードも出てこないです。 >>クラスSがデータ受信を通知するイベントを発生させて受信したデータを利用する側がSの参照を握ってイベンを受信すればいいでしょw ここが具体的にどういう構文になるのでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/979
980: デフォルトの名無しさん (アウアウカー Sa5d-GynM) [sage] 2018/06/05(火) 08:07:17.14 ID:D4M8TybKa Signalを使っても作れるな。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/980
981: デフォルトの名無しさん (ワッチョイ fa11-W/zB) [sage] 2018/06/05(火) 09:11:21.09 ID:GjVlFAo70 >>958 PCをあまり使い慣れてない人とか、ボタンはシングルクリックでいいのをダブルクリックしちゃったりとかあるんだよなこれが・・・ http://mevius.5ch.net/test/read.cgi/tech/1523004019/981
982: デフォルトの名無しさん (アウアウカー Sa5d-SvXf) [] 2018/06/05(火) 09:29:57.56 ID:nr/+sOXHa 非同期じゃないならボタンイネーブル切ればいいだけじゃね http://mevius.5ch.net/test/read.cgi/tech/1523004019/982
983: デフォルトの名無しさん (アウアウカー Sa5d-SvXf) [] 2018/06/05(火) 09:32:16.99 ID:nr/+sOXHa すまん。忘れてくれ http://mevius.5ch.net/test/read.cgi/tech/1523004019/983
984: デフォルトの名無しさん (アウアウウー Sa09-NLsb) [sage] 2018/06/05(火) 10:35:58.82 ID:l/0/VM/ma 状態をGUIだけに持たせておくのはおかしいといつか思うはず http://mevius.5ch.net/test/read.cgi/tech/1523004019/984
985: デフォルトの名無しさん (アウアウエー Sa22-UB1l) [sage] 2018/06/05(火) 12:11:20.04 ID:vCTdp4Eha >>979 class FrameReceivedEventArgs:EventArgs { public byte[] Frame{get; private set;} .... } class CommunicationPort { public even EventHandler<FrameReceivedEventArgs> FrameReceived; .... } class FrameDecoder { public FrameDecoder(CommunicationPort c} { c.FrameReceived += CommunicationPort_FrameReceived; } private void CommunicationPort_FrameReceived((object sender, FrameReceivedEventArgs e) { .... } .... } http://mevius.5ch.net/test/read.cgi/tech/1523004019/985
986: デフォルトの名無しさん (ブーイモ MMbe-CKCa) [sage] 2018/06/05(火) 12:44:05.86 ID:eGZjT6RJM >>985 引数に渡されたものを弄るのは行儀の悪い設計 IReceiverインターフェイスみたいなのを用意してport.AddReceiver(decoder)とするか、 >>979の言葉通りにいったん双方のクラスの外でイベントハンドラで受けて仲介したほうがいい http://mevius.5ch.net/test/read.cgi/tech/1523004019/986
987: デフォルトの名無しさん (ブーイモ MMbe-CKCa) [sage] 2018/06/05(火) 12:51:41.81 ID:eGZjT6RJM >>985がなぜ行儀が悪いか補足しておこうか 普通、オブジェクトを別のクラスのコンストラクタに渡すとき、プログラマは 受け取った側→引数側 の向きの参照ができることを期待する ところが、>>985だとそれが逆なんだよ new FrameDecoder(this.port) としただけで、portがGCされないかぎり作り捨てたはずのFrameDecoderがGCされないという、非直感的なコードになるわけ http://mevius.5ch.net/test/read.cgi/tech/1523004019/987
988: デフォルトの名無しさん (アウアウエー Sa22-UB1l) [sage] 2018/06/05(火) 12:55:30.14 ID:vCTdp4Eha 何言ってるのかさっぱりわからん よくわからん思考回路だな... http://mevius.5ch.net/test/read.cgi/tech/1523004019/988
989: デフォルトの名無しさん (ワッチョイ fa11-W/zB) [sage] 2018/06/05(火) 13:09:28.12 ID:GjVlFAo70 言い回しがようわからんが >>985みたいなのするのが解放されないオブジェクトを量産するっていうのはなんとなくわかる http://mevius.5ch.net/test/read.cgi/tech/1523004019/989
990: デフォルトの名無しさん (アウアウウー Sa09-CKCa) [sage] 2018/06/05(火) 13:11:38.32 ID:vyKZFDS5a >>988 分からないならイベントというものを正しく理解してないんじゃないかな ボタンのクリックイベントをフォームが受け取れるのは、ボタンがフォームへの参照を(実際には間にデリゲートが入るので間接的にだが)持ってるから 基本的に、引数に渡ってきたものに自分自身を登録するのは避けたほうがいい オブジェクトのライフタイムが非常に分かりにくくなるから http://mevius.5ch.net/test/read.cgi/tech/1523004019/990
991: デフォルトの名無しさん (ワントンキン MM8a-67BG) [sage] 2018/06/05(火) 13:53:28.61 ID:UBCugO63M reactive extensionsって.NET発祥なのに使う人少ないよね http://mevius.5ch.net/test/read.cgi/tech/1523004019/991
992: デフォルトの名無しさん (ワッチョイ cd24-lkdC) [] 2018/06/05(火) 15:23:49.06 ID:n583dJR10 >>969 ちょまど神って???状態でしたので調べてみました。 一つ知識が増えました。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/992
993: デフォルトの名無しさん (ワッチョイ cd24-lkdC) [] 2018/06/05(火) 15:24:19.24 ID:n583dJR10 >>970 そうなんですか。。。 NET Coreっての調べてみます。どうも有難う御座います。 ちょど昨日 GUI って何だ??って検索したばかりでした。 3日前からプログラムの勉強をはじめたばかりで。。。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/993
994: デフォルトの名無しさん (ワッチョイ cd24-lkdC) [] 2018/06/05(火) 15:24:34.93 ID:n583dJR10 >>975 ありがとうございます。TRYしてみます。 この掲示板すごーい!!皆様に感謝です。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/994
995: デフォルトの名無しさん (アウアウエー Sa22-UB1l) [sage] 2018/06/05(火) 16:15:32.44 ID:vCTdp4Eha >>989 ないないw イベントの購読解除はリークの原因になるのはその通りだけど、 それは>>986が主張するように、イベントを発生するオブジェクトを引数で受け取ったかどうかと無関係。 >>990 俺は理解してないのは君の方だと思うよw その君のいう俺様ルール、何が悪いのかさっぱり分からない そもそも今はそんな話をしてるんじゃないw 単に質問者の参考になるかもしれんコードの骨組みを示しただけw http://mevius.5ch.net/test/read.cgi/tech/1523004019/995
996: デフォルトの名無しさん (アウアウエー Sa22-UB1l) [sage] 2018/06/05(火) 16:16:25.51 ID:vCTdp4Eha あ、 × イベントの購読解除 〇 イベントの購読解除忘れ http://mevius.5ch.net/test/read.cgi/tech/1523004019/996
997: デフォルトの名無しさん (ワッチョイ d69a-msj4) [sage] 2018/06/05(火) 19:31:17.11 ID:70UTtyrn0 次スレたててみる http://mevius.5ch.net/test/read.cgi/tech/1523004019/997
998: デフォルトの名無しさん (ワッチョイ d69a-msj4) [sage] 2018/06/05(火) 19:33:22.39 ID:70UTtyrn0 ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/ たった 議論は他のところでよろしく http://mevius.5ch.net/test/read.cgi/tech/1523004019/998
999: デフォルトの名無しさん (アウアウウー Sa09-CKCa) [sage] 2018/06/06(水) 00:18:56.95 ID:+J9HGVUKa >>995 想像力のない人だなあ >>985だと、イベントハンドラの登録を解除しない限り、FrameDecoderが不要になっても 登録先のCommunicationPortよりも先にGCされることは絶対にない。 じゃあ不要になったらイベントハンドラを登録解除できるようにしよう。いつ解除する? それはFrameDecoder自身には分からない。知っているとしたら、それは>>976のいうメインクラスだろう。 登録解除するにはFrameDecoderクラスのDisposeメソッドを呼べ、という仕様にするか? 結局、985のFrameDecoderを正しく扱うには、メインクラス側がそういうクラス外から見ただけでは想像できないFrameDecoderの気難しい仕様を理解した上で、 必要に応じて明示的な解放を行わなくてはならない。 そんなことをするくらいならメインクラス側で明示的に登録・登録解除をやったほうが遥かに素直で分かりやすい。 http://mevius.5ch.net/test/read.cgi/tech/1523004019/999
1000: デフォルトの名無しさん (アウアウカー Sa5d-SvXf) [] 2018/06/06(水) 00:26:33.34 ID:D75pa1n0a 質問いいですか? http://mevius.5ch.net/test/read.cgi/tech/1523004019/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 60日 6時間 46分 14秒 http://mevius.5ch.net/test/read.cgi/tech/1523004019/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ https://login.5ch.net/login.php http://mevius.5ch.net/test/read.cgi/tech/1523004019/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s