「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part137
https://mevius.5ch.net/test/read.cgi/tech/1523004019/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part138
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 369a-msj4)
2018/06/05(火) 19:32:42.28ID:70UTtyrn02デフォルトの名無しさん (ワッチョイ 21e3-5Q+M)
2018/06/05(火) 20:49:49.24ID:M4A1qqma0 (*゚∀゚)b
3デフォルトの名無しさん (ワントンキン MM8a-67BG)
2018/06/06(水) 00:37:35.76ID:YMH0q3TJM デコーダーがイベント監視してる時点でなんかおかしいって気が付かなきゃダメだよ
クラスの責務は1つなのだからデコーダーはデコードすることに集中しなきゃならん
なのでイベントの購読、デコーダーへのデータ供給は別のクラスの仕事というわけだ
どうしてもデコーダーにイベントソースを掴ませたいならより抽象化されたストリームを渡すべきだろうね
クラスの責務は1つなのだからデコーダーはデコードすることに集中しなきゃならん
なのでイベントの購読、デコーダーへのデータ供給は別のクラスの仕事というわけだ
どうしてもデコーダーにイベントソースを掴ませたいならより抽象化されたストリームを渡すべきだろうね
4デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/06(水) 00:54:44.11ID:89Zk6fQTa 前スレ>>999
酷い言い掛かりだなw
この人、自分の議論が
(1) FrameDecoderは使い捨てされるオブジェクトである(CommunicationPortより寿命が短い)
(2) FrameDecoderを使う側(メインクラス?)はプログラムと同じ寿命
っていう自分勝手な前提に立ってることに気付いてるのかな。
そんな勝手な前提を置いたらどんなイチャモンでも言えるよw
既に書いたが、結局抽象的に言えるのは
----
使い捨てのオブジェクトが自分より長寿のオブジェクトのイベントに
メソッドを紐づけする場合は、イベント購読解除を忘れるとリークする
----
これ以上でも以下でもない。
だから俺の書いたコードhttps://mevius.5ch.net/test/read.cgi/tech/1523004019/985
に対して、「FrameDecoderがプログラムと同じ寿命じゃない、使い捨てされるオブジェクトなら
いらなくなったタイミングでイベント購読解除するようにしないとリークするよ」と質問者にアドバイスするのなら
意味があると思う
イベント発行側を引数でもらったらイカンとか、そんな訳わかんない
俺様ルールを他人にごり押ししてどうすんの。
酷い言い掛かりだなw
この人、自分の議論が
(1) FrameDecoderは使い捨てされるオブジェクトである(CommunicationPortより寿命が短い)
(2) FrameDecoderを使う側(メインクラス?)はプログラムと同じ寿命
っていう自分勝手な前提に立ってることに気付いてるのかな。
そんな勝手な前提を置いたらどんなイチャモンでも言えるよw
既に書いたが、結局抽象的に言えるのは
----
使い捨てのオブジェクトが自分より長寿のオブジェクトのイベントに
メソッドを紐づけする場合は、イベント購読解除を忘れるとリークする
----
これ以上でも以下でもない。
だから俺の書いたコードhttps://mevius.5ch.net/test/read.cgi/tech/1523004019/985
に対して、「FrameDecoderがプログラムと同じ寿命じゃない、使い捨てされるオブジェクトなら
いらなくなったタイミングでイベント購読解除するようにしないとリークするよ」と質問者にアドバイスするのなら
意味があると思う
イベント発行側を引数でもらったらイカンとか、そんな訳わかんない
俺様ルールを他人にごり押ししてどうすんの。
5デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/06(水) 00:57:45.23ID:89Zk6fQTa それとさあ、、これも繰り返しになるけど、
だから俺は質問者の参考になるかもしれんコードの骨組みのサンプルを書いてるだけであって、
そんな細かい別の話をしてるんじゃないってばw
何でもっと建設的になれないかな
だから俺は質問者の参考になるかもしれんコードの骨組みのサンプルを書いてるだけであって、
そんな細かい別の話をしてるんじゃないってばw
何でもっと建設的になれないかな
6デフォルトの名無しさん (ワッチョイ d681-gTal)
2018/06/06(水) 01:15:02.96ID:e5dRgfnV0 死なないと分かんねーのかな
7デフォルトの名無しさん (ブーイモ MMf1-CKCa)
2018/06/06(水) 01:18:11.35ID:qa98W75KM >>4
分かってないなあ
FrameDecoderの寿命はFrameDecoder自身が決めることではなくてそれを使う側が決めることでしょ
引数をはじめとして、自分の管理外にあるものに対して自分自身を登録することは、その了解を破ってるという点で好まれない
OSSのソースとか読んだことないかもしれないけど、実際滅多にないよ?
FormやTimerのようにGCRoot持って自分自身で寿命を制御してる例外も無くはないが、
それはフォームはXボタン、タイマなら一定時間経過、というように自分自身の性質が寿命を決めているからそれが自然なんだよ
分かってないなあ
FrameDecoderの寿命はFrameDecoder自身が決めることではなくてそれを使う側が決めることでしょ
引数をはじめとして、自分の管理外にあるものに対して自分自身を登録することは、その了解を破ってるという点で好まれない
OSSのソースとか読んだことないかもしれないけど、実際滅多にないよ?
FormやTimerのようにGCRoot持って自分自身で寿命を制御してる例外も無くはないが、
それはフォームはXボタン、タイマなら一定時間経過、というように自分自身の性質が寿命を決めているからそれが自然なんだよ
8デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/06(水) 01:18:13.86ID:XybM8xsda >>4
分かってないなあ
FrameDecoderの寿命はFrameDecoder自身が決めることではなくてそれを使う側が決めることでしょ
引数をはじめとして、自分の管理外にあるものに対して自分自身を登録することは、その了解を破ってるという点で好まれない
OSSのソースとか読んだことないかもしれないけど、実際滅多にないよ?
FormやTimerのようにGCRoot持って自分自身で寿命を制御してる例外も無くはないが、
それはフォームはXボタン、タイマなら一定時間経過、というように自分自身の性質が寿命を決めているからそれが自然なんだよ
分かってないなあ
FrameDecoderの寿命はFrameDecoder自身が決めることではなくてそれを使う側が決めることでしょ
引数をはじめとして、自分の管理外にあるものに対して自分自身を登録することは、その了解を破ってるという点で好まれない
OSSのソースとか読んだことないかもしれないけど、実際滅多にないよ?
FormやTimerのようにGCRoot持って自分自身で寿命を制御してる例外も無くはないが、
それはフォームはXボタン、タイマなら一定時間経過、というように自分自身の性質が寿命を決めているからそれが自然なんだよ
9デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/06(水) 01:28:03.10ID:kKiXaErEa >>7
分かってないのは君
だから、君は勝手に「FrameDecoderを使う側の寿命はCommunicationPortと同じが
それより長い」という前提に立っている。
何度も言うが、そんな勝手な前提を置いたら何でも言える。
じゃあFrameDecoderを使うオブジェクトの寿命がCommunicationPortより短い場合はどうするのか。
分かってないのは君
だから、君は勝手に「FrameDecoderを使う側の寿命はCommunicationPortと同じが
それより長い」という前提に立っている。
何度も言うが、そんな勝手な前提を置いたら何でも言える。
じゃあFrameDecoderを使うオブジェクトの寿命がCommunicationPortより短い場合はどうするのか。
10デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/06(水) 01:36:08.83ID:XybM8xsda >>9
なるほど、そんな初歩的なところを勘違いしてたのか
イベントを使うにしろ何にしろ、CommunicationPortから引数の受け渡しによってデータを受け取る以上、
当然、CommunicationPortからFrameDecoderへは参照を辿って到達可能でなければならないよ
問題にしてるのはその参照を登録したり解除したりする責任の話ね
なるほど、そんな初歩的なところを勘違いしてたのか
イベントを使うにしろ何にしろ、CommunicationPortから引数の受け渡しによってデータを受け取る以上、
当然、CommunicationPortからFrameDecoderへは参照を辿って到達可能でなければならないよ
問題にしてるのはその参照を登録したり解除したりする責任の話ね
11デフォルトの名無しさん (ワッチョイ fa9d-/lNa)
2018/06/06(水) 01:39:09.20ID:CmtfArYj0 つか、シリアル通信クラスって標準のがあった気がするけど
それが合わないとしても、それを模倣して作れって言うのが普通じゃないのか
それが合わないとしても、それを模倣して作れって言うのが普通じゃないのか
12前スレ976 (ワッチョイ 4e99-fUxx)
2018/06/06(水) 06:26:27.44ID:z0q6WK6V0 すいません
回答ありがとうございました
何か揉める原因になってすいません
ttps://dobon.net/vb/dotnet/vb2cs/event.html#section3のデータを返す方法がやりたいことになるのかなと思って調べてました。
回答ありがとうございました
何か揉める原因になってすいません
ttps://dobon.net/vb/dotnet/vb2cs/event.html#section3のデータを返す方法がやりたいことになるのかなと思って調べてました。
13デフォルトの名無しさん (ワッチョイ d681-gTal)
2018/06/06(水) 09:37:08.80ID:e5dRgfnV0 彼らは病気だから気にしなくていい
いつものことさ
いつものことさ
14デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/06(水) 11:55:26.62ID:/mNmPD5La >>10
何を言ってるのかさっぱり分からない
だれか分かる人がいたら解説してw
「CommunicationPortからFrameDecoderへは参照を辿って到達可能でなければならない」
必要なんかどこにあんのw
しかし、こういう「俺様ルール」を正当化するために
勝手な前提条件を設定してかつその自覚がない人ってのは困っちゃうね
何を言ってるのかさっぱり分からない
だれか分かる人がいたら解説してw
「CommunicationPortからFrameDecoderへは参照を辿って到達可能でなければならない」
必要なんかどこにあんのw
しかし、こういう「俺様ルール」を正当化するために
勝手な前提条件を設定してかつその自覚がない人ってのは困っちゃうね
15デフォルトの名無しさん (アウアウエー Sa22-UB1l)
2018/06/06(水) 12:02:03.87ID:/mNmPD5La >>12
別にもめてるわけじゃw
プログラミングは技術の一種なんだから質問スレであっても
議論に発展することがあるのは当たり前で、それを異常なことのように
感じる人間の方が病気で、そういう人間こそ無視していいと思う
以前「マウンティング」って言葉が好きな御仁がおったけど、
ようするに彼はそんなくだらないことでマウントを取りたい自分を
表出することで何かを語るに落ちてることにも気が付かない素朴なお方だw
別にもめてるわけじゃw
プログラミングは技術の一種なんだから質問スレであっても
議論に発展することがあるのは当たり前で、それを異常なことのように
感じる人間の方が病気で、そういう人間こそ無視していいと思う
以前「マウンティング」って言葉が好きな御仁がおったけど、
ようするに彼はそんなくだらないことでマウントを取りたい自分を
表出することで何かを語るに落ちてることにも気が付かない素朴なお方だw
16デフォルトの名無しさん (ワッチョイ fa11-W/zB)
2018/06/06(水) 12:28:24.14ID:v+YVHC4y0 >>1読め
17デフォルトの名無しさん (ワッチョイ fae0-kPLI)
2018/06/06(水) 20:12:00.38ID:Xjc53mAM0 どうでもいい質問ですがvisual studioの初期設定で
C#が中括弧だけで1行使うのはなにか理由があるんでしょうか?
C++他の言語だと最初の中括弧の前では改行しないスタイルの方が多いと思うんですが
C#が中括弧だけで1行使うのはなにか理由があるんでしょうか?
C++他の言語だと最初の中括弧の前では改行しないスタイルの方が多いと思うんですが
18デフォルトの名無しさん (ラクッペ MM35-gTal)
2018/06/06(水) 20:17:07.10ID:yVrgGFaDM ない
19デフォルトの名無しさん (アウアウウー Sa09-C2Ni)
2018/06/06(水) 20:34:10.39ID:LL2q+46Ta20デフォルトの名無しさん (ワッチョイ d681-R6Ha)
2018/06/06(水) 21:13:23.87ID:5ce/nrvV0 >>17
波動拳みたいでいいだろ?
波動拳みたいでいいだろ?
21デフォルトの名無しさん (ワッチョイ fae0-kPLI)
2018/06/06(水) 21:13:34.77ID:Xjc53mAM0 >>19
どうも、よく分かりました
どうも、よく分かりました
22デフォルトの名無しさん (ワントンキン MM8a-67BG)
2018/06/06(水) 23:05:03.78ID:N8yiaTQzM パイソンスタイルが至高
波カッコとか要らん
波カッコとか要らん
23デフォルトの名無しさん (ワッチョイ 5db3-7ot6)
2018/06/06(水) 23:07:52.15ID:+PcIhiGy0 俺はブロックが解り易くて良いと思うけどな
縦に長くなるのが嫌だって人がいるのも理解しない事はないが
縦に長くなるのが嫌だって人がいるのも理解しない事はないが
24デフォルトの名無しさん (アウアウウー Sa09-CKCa)
2018/06/06(水) 23:15:12.78ID:c8dAN/Mma >>17
C++は { だけで一行使うスタイルの方が一般的だと思うぞ
C#はもともとC++開発者の取り込みを狙って作られた言語なので、ソースのスタイルも含め、意図的に全体的な雰囲気をC++に似せている
C++は { だけで一行使うスタイルの方が一般的だと思うぞ
C#はもともとC++開発者の取り込みを狙って作られた言語なので、ソースのスタイルも含め、意図的に全体的な雰囲気をC++に似せている
25デフォルトの名無しさん (ワッチョイ eb81-lRLg)
2018/06/07(木) 00:32:23.12ID:8RMVvRLY0 >>22
C#はコード畳めるんだぜ?
C#はコード畳めるんだぜ?
26デフォルトの名無しさん (ワッチョイ 81b3-9mJg)
2018/06/07(木) 00:35:34.59ID:gtRPAC9i0 言いたい事は解るけど、それは言語仕様でなくIDEの機能では……
27デフォルトの名無しさん (ワッチョイ e9e3-oEJ7)
2018/06/07(木) 07:22:06.46ID:7v9jTo8H0 あのコード畳める機能って極悪だよな。
もうそろそろ終わりだなぁと思ったら畳まれているコードが数百行隠れてましたとか泣いたよ。
もうそろそろ終わりだなぁと思ったら畳まれているコードが数百行隠れてましたとか泣いたよ。
28デフォルトの名無しさん (ワッチョイ 1311-V68u)
2018/06/07(木) 08:14:21.51ID:w0rLP4AV0 畳まれてるコードがあって泣くってどういう状態だよ・・・
29デフォルトの名無しさん (スッップ Sd33-fSec)
2018/06/07(木) 08:49:08.48ID:acA4rAind どうせ20000行のメソッドとかなんだろ
30デフォルトの名無しさん (ワンミングク MM53-LJEe)
2018/06/07(木) 08:54:33.87ID:dtJbFkp5M クラスの作成について教えてください。
内部でstring程度の情報しか持たない場合でも、Disposeは実装しなければならないですか?実際、何もやる事ないですが。
内部でstring程度の情報しか持たない場合でも、Disposeは実装しなければならないですか?実際、何もやる事ないですが。
31デフォルトの名無しさん (ワッチョイ eb81-XZeD)
2018/06/07(木) 08:59:41.46ID:jTBAfznK0 しなければならないと言った人に聞いてくださいよ
一般的に、決定権がある人が必要ないと判断すればしません
一般的に、決定権がある人が必要ないと判断すればしません
32デフォルトの名無しさん (ワンミングク MM53-LJEe)
2018/06/07(木) 09:15:25.73ID:dtJbFkp5M すみません、聞き方が悪かったです。
しなければならないと言われた訳ではないのですが、作法としてどうなのかな?と心配になって質問しました。
自分だけで使うならどうでもいいのですが、他人にも公開するものなので、恥ずかしくないものを作りたくて。
しなければならないと言われた訳ではないのですが、作法としてどうなのかな?と心配になって質問しました。
自分だけで使うならどうでもいいのですが、他人にも公開するものなので、恥ずかしくないものを作りたくて。
33デフォルトの名無しさん (ワッチョイ 1306-EqDK)
2018/06/07(木) 09:41:25.22ID:NVuYCS+k0 作法というかIDisposableは主にアンマネージリソース解放の用途だよ
OS機能を直接扱うとか、メンバーが使用してるとか。インスタンス解放ではない
むしろ実装の仕方に作法があるのでMicrosoft DocsなりMSDNなりを
OS機能を直接扱うとか、メンバーが使用してるとか。インスタンス解放ではない
むしろ実装の仕方に作法があるのでMicrosoft DocsなりMSDNなりを
34デフォルトの名無しさん (アウアウウー Sad5-BJSQ)
2018/06/07(木) 15:35:52.79ID:Fu48jME1a35デフォルトの名無しさん (ワンミングク MM53-LJEe)
2018/06/07(木) 16:30:11.85ID:dtJbFkp5M36デフォルトの名無しさん (ブーイモ MMeb-lRLg)
2018/06/07(木) 19:28:36.25ID:6Ugs28PiM >>27
行数表示してないのかよw
行数表示してないのかよw
37デフォルトの名無しさん (ワッチョイ 897f-LHz9)
2018/06/07(木) 19:55:09.68ID:GcMnTqlg0 コントロールが表示されないのですがなぜでしょう
Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView wv = new Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView();
wv.Dock = DockStyle.Fill;
this.Controls.Add(wv);
wv.Navigate("http://www.yahoo.co.jp/");
Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView wv = new Microsoft.Toolkit.Win32.UI.Controls.WinForms.WebView();
wv.Dock = DockStyle.Fill;
this.Controls.Add(wv);
wv.Navigate("http://www.yahoo.co.jp/");
38デフォルトの名無しさん (アウアウカー Sa2d-yORj)
2018/06/07(木) 21:20:31.87ID:aqK3UKBIa >>35
アンマネージなシステムリソースを確実に解放するときに使うよ
アンマネージなシステムリソースを確実に解放するときに使うよ
39デフォルトの名無しさん (ワッチョイ 09c3-Ihiv)
2018/06/07(木) 21:25:32.22ID:HziEaPXa0 どういう考え方をすればできるようになるんだよ!教えろお前ら!!ホラホラホラホラ!!!!
40デフォルトの名無しさん (ワッチョイ eb81-lRLg)
2018/06/07(木) 21:27:36.16ID:8RMVvRLY0 プロセスゾンビを確実にkillするにはどうすればよい?
41デフォルトの名無しさん (ワッチョイ b1b5-pwhw)
2018/06/07(木) 21:43:03.21ID:muNvrUxm0 シャットダウン
42デフォルトの名無しさん (バットンキン MM53-9WTg)
2018/06/08(金) 12:54:30.79ID:ZXhSx/U8M kill -9 プロセス番号
43デフォルトの名無しさん (ワッチョイ a98a-Duqg)
2018/06/08(金) 12:54:58.48ID:sQqhvtlW0 init 0
44デフォルトの名無しさん (オイコラミネオ MMb5-GLBR)
2018/06/08(金) 13:08:29.19ID:CYBBWkiVM >>17
私は { は単独にしない派ですね。
理由は、少しでも多く画面内にソースを表示して見通しやすくするためと、昔からの Basicの名残で、ifなら thenに相当する { は行末。endifの } は単独という位置づけですね。
今はideの進化で { } のペアの書き忘れがほとんどないというのもあるかな。
私は { は単独にしない派ですね。
理由は、少しでも多く画面内にソースを表示して見通しやすくするためと、昔からの Basicの名残で、ifなら thenに相当する { は行末。endifの } は単独という位置づけですね。
今はideの進化で { } のペアの書き忘れがほとんどないというのもあるかな。
45デフォルトの名無しさん (ワッチョイ 137f-6+Fv)
2018/06/08(金) 14:44:00.50ID:6WR6CtyO0 >>37
試してないけど、対応OSで実行してないとか?
試してないけど、対応OSで実行してないとか?
46デフォルトの名無しさん (スップ Sd73-fSec)
2018/06/08(金) 15:03:45.94ID:QSVDv9Gwd >>44
その言語の流儀に素直に従った方がいいんじゃないかと
その言語の流儀に素直に従った方がいいんじゃないかと
47デフォルトの名無しさん (ワッチョイ 1311-V68u)
2018/06/08(金) 16:55:43.13ID:3Fn0oPLQ0 流儀に従うなら、どっちでもいい、では?
48デフォルトの名無しさん (ワッチョイ d360-X4KX)
2018/06/08(金) 17:50:11.32ID:wbtEeseM0 int c = 5;
for(c = 1; c < 61; c++)
{
//処理
}
Console.WriteLine(c.ToString());
これで一番最後でCが62になるのですが
C<61の判定後でも++のインクリメントは行われているってことでいいのですか?
for(c = 1; c < 61; c++)
{
//処理
}
Console.WriteLine(c.ToString());
これで一番最後でCが62になるのですが
C<61の判定後でも++のインクリメントは行われているってことでいいのですか?
49デフォルトの名無しさん (ワッチョイ eb9a-DGJA)
2018/06/08(金) 17:59:23.80ID:3yCOErp0050デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/08(金) 18:02:38.49ID:SrLrQXUUa51デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/08(金) 18:11:11.09ID:SrLrQXUUa つーか、この程度の検証もせずに他人に質問を投げる神経が分からんマジで
52デフォルトの名無しさん (スップ Sd73-fSec)
2018/06/08(金) 18:35:49.98ID:QSVDv9Gwd >>47
パブリックなAPIかそうでないかによって違う
パブリックなAPIかそうでないかによって違う
53デフォルトの名無しさん (ワッチョイ 897f-4qwh)
2018/06/08(金) 19:21:59.01ID:TU3718TC0 >>45
OSのバージョンは問題なさそうなんですよね。
OSのバージョンは問題なさそうなんですよね。
54デフォルトの名無しさん (ワッチョイ 1311-V68u)
2018/06/09(土) 10:20:18.22ID:iRP9QLJz055デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 11:11:10.00ID:3S5Pjg6F0 構造化制御文はインデントされた行を1行と1行、例えば if (a == b) { と } で挟むのが、
パッと見たとき一体に見えて分かりやすい。{ を単独行にすると、{ と } で挟まれた
無名ブロックがあって、その上に構造的に無関係な1行のif文があるように見えてしまう。
もう少しじっくり見れば、行末の ; の有無で下のブロックとの関係を判別できるが、
その一瞬の認知の遅れに違和感を覚え、もっとはっきり言えばキモいコードだと思う。
同じ理由で、条件が真のときの文が1つの場合の
if (a == b)
c = d;
e = f;
のようなスタイルもキモいし、Pythonの
if a = b:
c = d
e = f
g = h
はもっとキモくて、まさに蛇蝎のように嫌いだ。
関数・メソッド定義と制御文の見分けという観点からも、前者は
int func(int arg)
{
後者は
if (cond) {
で始めて、( の前のスペースの有無と { の前の改行の有無のどちらでも前者と後者で
違いをつけた方が、すんなりと見分けられて良い。
パッと見たとき一体に見えて分かりやすい。{ を単独行にすると、{ と } で挟まれた
無名ブロックがあって、その上に構造的に無関係な1行のif文があるように見えてしまう。
もう少しじっくり見れば、行末の ; の有無で下のブロックとの関係を判別できるが、
その一瞬の認知の遅れに違和感を覚え、もっとはっきり言えばキモいコードだと思う。
同じ理由で、条件が真のときの文が1つの場合の
if (a == b)
c = d;
e = f;
のようなスタイルもキモいし、Pythonの
if a = b:
c = d
e = f
g = h
はもっとキモくて、まさに蛇蝎のように嫌いだ。
関数・メソッド定義と制御文の見分けという観点からも、前者は
int func(int arg)
{
後者は
if (cond) {
で始めて、( の前のスペースの有無と { の前の改行の有無のどちらでも前者と後者で
違いをつけた方が、すんなりと見分けられて良い。
>>55
if (cond) {
}
と書くのだったら、関数の場合も
int func(int arg) {
}
とするのが統一がとれていいんじゃない?なぜ関数と if 文とで書き分けるのか、その理由がわからない
if (cond) {
}
と書くのだったら、関数の場合も
int func(int arg) {
}
とするのが統一がとれていいんじゃない?なぜ関数と if 文とで書き分けるのか、その理由がわからない
57デフォルトの名無しさん (ワッチョイ 81b3-9mJg)
2018/06/09(土) 11:40:22.30ID:kOHnqaQt0 その自己主張要る?
58デフォルトの名無しさん (ワッチョイ 81b3-9mJg)
2018/06/09(土) 11:41:04.90ID:kOHnqaQt059デフォルトの名無しさん (ワッチョイ ebc9-LHz9)
2018/06/09(土) 11:42:25.58ID:4y2IVpvw0 メソッドとif文に差付けなくてもインデント違う時点で判別付くんじゃないのか
と思ったが、ローカル関数出てきたんだっけか
と思ったが、ローカル関数出てきたんだっけか
60デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 12:02:32.41ID:54mp5fzVM if (cond) statement;
if (cond) call();
if (notcond) return;
statement;
statement;
statement;
{}がなくても見やすいね
if (cond) call();
if (notcond) return;
statement;
statement;
statement;
{}がなくても見やすいね
61デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:03:48.88ID:3S5Pjg6F062デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:05:40.33ID:3S5Pjg6F0 >>60
1行if文は否定しないし、自分自身も割とよく使うよ。
1行if文は否定しないし、自分自身も割とよく使うよ。
>>61
pascal に習う必要はないと思いますが…なぜ pascal を持ち出してきたのでしょうか?
私は関数と if/for/while を別にする必要性はないと思っています
{
}
とかスペースの無駄にみえてしまいます
pascal に習う必要はないと思いますが…なぜ pascal を持ち出してきたのでしょうか?
私は関数と if/for/while を別にする必要性はないと思っています
{
}
とかスペースの無駄にみえてしまいます
64デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 12:23:56.94ID:54mp5fzVM 構造がクリーンなコードを心がければ自然と{}を使わないコードになる
まあ俺から言わせてもらうと{}は綺麗なコードが浮かばない時に仕方なく使う苦肉の策ってところだね
まあ俺から言わせてもらうと{}は綺麗なコードが浮かばない時に仕方なく使う苦肉の策ってところだね
65デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:43:14.79ID:3S5Pjg6F0 >>63
Pascalの悪い所、例えば条件を ( ) で囲まないので条件が目立たないのは真似する
必要はないが、良い所は参考にすべきだろう。C#は開発主導者がTurbo Pascalの
作者だったこともあり、Pascalからもいくらかの影響を受けていて、赤の他人ではない。
関数と制御文は機能が違うし、関数の方がより大きなブロックだから、書き分けた方が
すんなり読める。自然言語で小さな区切りには , を、大きな区切りには ; を使って
書き分けるのに似ている。あるいは章や節の見出しのスタイルに視覚的な差を
つけるようなもの。
Pascalの悪い所、例えば条件を ( ) で囲まないので条件が目立たないのは真似する
必要はないが、良い所は参考にすべきだろう。C#は開発主導者がTurbo Pascalの
作者だったこともあり、Pascalからもいくらかの影響を受けていて、赤の他人ではない。
関数と制御文は機能が違うし、関数の方がより大きなブロックだから、書き分けた方が
すんなり読める。自然言語で小さな区切りには , を、大きな区切りには ; を使って
書き分けるのに似ている。あるいは章や節の見出しのスタイルに視覚的な差を
つけるようなもの。
67デフォルトの名無しさん (ワッチョイ 13d2-fSec)
2018/06/09(土) 13:02:16.97ID:ufdIEzvk068デフォルトの名無しさん (ワッチョイ b1b5-pwhw)
2018/06/09(土) 13:06:52.76ID:oQlrsJoz0 改行コードが構文に影響を与えない言語仕様なんだから、好きにすればいいんだよ。
69デフォルトの名無しさん (ワッチョイ 0b33-T1fc)
2018/06/09(土) 13:12:22.07ID:Tjb3C0On0 pascal流はマジキモイな
func() {
}
if () {
}
else {
}
が一番利に適ってる
func() {
}
if () {
}
else {
}
が一番利に適ってる
70デフォルトの名無しさん (ブーイモ MM33-EqDK)
2018/06/09(土) 13:27:36.34ID:VOfp/P7BM これ以上続けても宗教の違いみたいな話で
なにも建設的なハナシにはならないからここらで終わりにしておけば?
なにも建設的なハナシにはならないからここらで終わりにしておけば?
71デフォルトの名無しさん (ワッチョイ ebc9-LHz9)
2018/06/09(土) 13:29:19.91ID:4y2IVpvw0 いくら議論したところで、お仕事なら我が社のコーディング規約で終わっちゃう話だしな
72デフォルトの名無しさん (オッペケ Srdd-HQUw)
2018/06/09(土) 14:24:17.49ID:fpkuA4ugr どうでもいいしキモい
73デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/09(土) 14:27:26.20ID:DBY1R4Jva この手の嗜好がただの慣れと思い込みにすぎないっていい歳こいて気付かない人は
プログラマとしてかなり筋が悪いと思うw
たぶん知能もあんまり高くないw
2週間も違う書式で作業してたらすっかりそっちが「普通」になるw
人間なんてそんなもの。
これフォントにも言えるね
プログラマとしてかなり筋が悪いと思うw
たぶん知能もあんまり高くないw
2週間も違う書式で作業してたらすっかりそっちが「普通」になるw
人間なんてそんなもの。
これフォントにも言えるね
>>70
泥仕合にならないかぎり、意義があると思っています、これから泥仕合になるのかもしれませんが…
泥仕合にならないかぎり、意義があると思っています、これから泥仕合になるのかもしれませんが…
75デフォルトの名無しさん (ワッチョイ 13b3-Chll)
2018/06/09(土) 14:28:44.98ID:d5fCz/GJ0 エディタとコーディングスタイルの話はしないのが紳士のたしなみ
76デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 14:39:18.62ID:54mp5fzVM77デフォルトの名無しさん (ワッチョイ 137f-6+Fv)
2018/06/09(土) 15:20:12.02ID:JwKFPqLV078デフォルトの名無しさん (ワッチョイ eb81-XZeD)
2018/06/09(土) 15:35:33.03ID:a58WBe6r0 >>75
よい習慣をお持ちですね。素晴らしい
よい習慣をお持ちですね。素晴らしい
79デフォルトの名無しさん (ワッチョイ 1981-DGJA)
2018/06/11(月) 12:25:35.64ID:6xD/x26k0 VisualStudio2017 でコンソールアプリケーションを作っています。
System.Windows.Forms.Clipboardクラスを使いたいのですが
ビルドの設定をReleaseにしているとエラーはでないのに
Debugにすると FormsがSystem.Windowsに存在しないといわれてしまいます。
(アセンブリ参照はしています)
どなたか原因分かる方いないでしょうか。
https://i.imgur.com/sgkx4HK.png
https://i.imgur.com/Tr2VkYB.png
System.Windows.Forms.Clipboardクラスを使いたいのですが
ビルドの設定をReleaseにしているとエラーはでないのに
Debugにすると FormsがSystem.Windowsに存在しないといわれてしまいます。
(アセンブリ参照はしています)
どなたか原因分かる方いないでしょうか。
https://i.imgur.com/sgkx4HK.png
https://i.imgur.com/Tr2VkYB.png
80デフォルトの名無しさん (スッップ Sd33-fSec)
2018/06/11(月) 12:35:57.40ID:bN46fGFrd >>79
csprojファイル晒して
csprojファイル晒して
8179 (ワッチョイ 1981-DGJA)
2018/06/11(月) 13:13:19.40ID:6xD/x26k082デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/11(月) 21:03:57.62ID:TLX2q1MD0 フォームアプリで画面の真ん中に線を引きたいと思って単純に
(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)/2
のところに線を挽けばいいと思ったんですが、モニタのピクセルの半分のところに線を引くと
フォームの上の -□× のあるバーの下から0ピクセルになるから20ピクセルほどが下にずれてしまいます。
フォームの中央に線を引く方法ってないでしょうか?
(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)/2
のところに線を挽けばいいと思ったんですが、モニタのピクセルの半分のところに線を引くと
フォームの上の -□× のあるバーの下から0ピクセルになるから20ピクセルほどが下にずれてしまいます。
フォームの中央に線を引く方法ってないでしょうか?
83デフォルトの名無しさん (ササクッテロラ Spdd-pwhw)
2018/06/11(月) 21:10:24.16ID:hXpDig4+p 枠無しフォームでやれ。
84デフォルトの名無しさん (ワッチョイ eb9a-DGJA)
2018/06/11(月) 21:11:16.03ID:R9cSput30 >>82
フォームの中央なのか画面の中央なのかまずはっきりしてくれ
スクリーン座標←→クライアント座標の変換を行うには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/377screentoclient/screentoclient.html
フォームの中央なのか画面の中央なのかまずはっきりしてくれ
スクリーン座標←→クライアント座標の変換を行うには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/377screentoclient/screentoclient.html
85デフォルトの名無しさん (ワッチョイ 8917-LHz9)
2018/06/11(月) 21:12:11.98ID:aKalcs2L0 フォームの中央なのかディスプレイの中央なのかどっちだよ
86デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/11(月) 21:44:14.69ID:TLX2q1MD0 自分でもどっちでいいかわからなくなったw
最初単純にフォーム最大化してるんだから、モニタの真ん中が真ん中だろと思ったら、
windowsって下にタスクバーあるわ、モニタの下に非表示領域20ピクセルほど隠れてるわ、フォームにフォームバーあるわで、
モニタの真ん中が真ん中に見えない。
たぶん無意識化でフォームの真ん中が人は真ん中と認識しているので気持ち悪い。
ということでフォームの真ん中にしました。
最初単純にフォーム最大化してるんだから、モニタの真ん中が真ん中だろと思ったら、
windowsって下にタスクバーあるわ、モニタの下に非表示領域20ピクセルほど隠れてるわ、フォームにフォームバーあるわで、
モニタの真ん中が真ん中に見えない。
たぶん無意識化でフォームの真ん中が人は真ん中と認識しているので気持ち悪い。
ということでフォームの真ん中にしました。
87デフォルトの名無しさん (ワッチョイ 13d2-fSec)
2018/06/11(月) 22:15:41.36ID:kexbIBuK0 >>86
タスクバーの位置なんて自由に変えられるんだけど
タスクバーの位置なんて自由に変えられるんだけど
88デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/11(月) 22:24:08.10ID:xa0hP702a >モニタの下に非表示領域20ピクセルほど隠れてるわ
そんなものはないと思うけど...
今時CRT使っててオーバースキャン表示でもやってるなら別かもしれんけどw
そんなものはないと思うけど...
今時CRT使っててオーバースキャン表示でもやってるなら別かもしれんけどw
89デフォルトの名無しさん (ワッチョイ 0b33-T1fc)
2018/06/11(月) 22:37:51.73ID:VLKc0T550 フォームバーってタイトルバーのことかな
非クライアント領域もあるぞ
非クライアント領域もあるぞ
90前スレ976 (ブーイモ MMeb-tDoJ)
2018/06/12(火) 07:25:05.60ID:qsxFIdydM どうにかイベントを発生させることができました。ここから5バイトの受信データを分解して処理を分岐したいんですが、どのような手法、便利な関数がありますでしょうか。
オペコード1バイト+データ4バイトという形式です。データは4バイトで表現する数値だったり、1ビットごとのフラグだったりします。
昔ながらのswich~caseで分岐って使うんでしょうか
オペコードが増えたり、データの予約ビットが変わると変更が大変そうです
オペコード1バイト+データ4バイトという形式です。データは4バイトで表現する数値だったり、1ビットごとのフラグだったりします。
昔ながらのswich~caseで分岐って使うんでしょうか
オペコードが増えたり、データの予約ビットが変わると変更が大変そうです
91デフォルトの名無しさん (アウアウウー Sad5-BJSQ)
2018/06/12(火) 08:46:58.51ID:awfOgDQGa switchでいいよ
たかがイベント一個作るのに何日もかかるようなレベルで今どんな凝った設計しようが、結局後で全部やり直しになる
今は余計な手間をかけないこと、シンプルに保つこと、それだけ考えてりゃいい
たかがイベント一個作るのに何日もかかるようなレベルで今どんな凝った設計しようが、結局後で全部やり直しになる
今は余計な手間をかけないこと、シンプルに保つこと、それだけ考えてりゃいい
92デフォルトの名無しさん (ワッチョイ a98a-Duqg)
2018/06/12(火) 08:51:11.88ID:l+dIOx6V0 デバイスドライバーみたいに処理をチェーンさせるってのもあり
93デフォルトの名無しさん (ブーイモ MM05-BJSQ)
2018/06/12(火) 09:12:16.14ID:HMj9ZmCFM スクリプト言語のインタプリタなんかでも巨大switchが普通だぞ
断言するが、先を見通せない状況でヘタにコマンドパターンとか入れても、後で横断的な変更が多発して
すべてのコマンドクラスに手を入れて回るアホみたいな作業に追われることになるだけ
断言するが、先を見通せない状況でヘタにコマンドパターンとか入れても、後で横断的な変更が多発して
すべてのコマンドクラスに手を入れて回るアホみたいな作業に追われることになるだけ
94デフォルトの名無しさん (ワッチョイ 1311-V68u)
2018/06/12(火) 10:49:11.67ID:Blmm4zE90 コード増加はともかく予約を変更すんな・・・
95デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/12(火) 11:04:17.10ID:O2DKnY7ra >>90
どっちにしろ「便利な関数なんかないでしょうw
ちっとも汎用的じゃない処理をエレガントに書く方法なんか用意されてるはずがないw
泥臭い物は泥臭く書くしかないかと
オペコードがそれ以上分解できない前提で
(1) オペコードをenumにキャストしてswith、でも
(2) ジャンプテーブル(デリゲートの配列)を使う、でもお好みで
もし仮に受信するデータが常にこちらから要求したデータである、
つまり、どういうデータが送信されてくることをこちら側が期待しているか事前に分かっている場合は
別の方法論もあると思う
その場合はこちらがリクエストを出す段階で、期待する種類のデータだけを読解できるオブジェクトを
生成してタイムアウト付きで待機させればいい
どっちにしろ「便利な関数なんかないでしょうw
ちっとも汎用的じゃない処理をエレガントに書く方法なんか用意されてるはずがないw
泥臭い物は泥臭く書くしかないかと
オペコードがそれ以上分解できない前提で
(1) オペコードをenumにキャストしてswith、でも
(2) ジャンプテーブル(デリゲートの配列)を使う、でもお好みで
もし仮に受信するデータが常にこちらから要求したデータである、
つまり、どういうデータが送信されてくることをこちら側が期待しているか事前に分かっている場合は
別の方法論もあると思う
その場合はこちらがリクエストを出す段階で、期待する種類のデータだけを読解できるオブジェクトを
生成してタイムアウト付きで待機させればいい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★6 [ぐれ★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪
- 【画像】高市早苗首相、中国人の動画サイトで、カモノハシにされてしまう [253245739]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【悲報】高市早苗さん、もう辞職しか選択肢がない… [271912485]
- 高市早苗さん、長年の東アジアの懸念である朝鮮半島統一を果たしてしまいアジアの英雄になる [152212454]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
