!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
2019/12/11(水) 22:12:11.28ID:d09CciDz0676デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 20:12:38.30ID:J9WtEN9Ir 今日も仕事で新型コロナウイルスなんて騒ぎすぎだという老人の独演会を30分聞かされた
対策も必要ない死ぬ人は死ぬでいいじゃないかと言う話
老害しなないかな
対策も必要ない死ぬ人は死ぬでいいじゃないかと言う話
老害しなないかな
677デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:21.81ID:xcV7YFLC0 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
でも現実には再現しないから困ってんだろうな
678デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:22.13ID:xcV7YFLC0 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
でも現実には再現しないから困ってんだろうな
679デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:31:30.36ID:59NEldNla ちなみに念のためこんなのもやってみたが
//button1をクリックした後button2を連打せよ
private void button1_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Button Clicked !");
}
Win32に詳しくないので理由を与えることが出来ないけど、
この場合もメッセージボックスは1度しか表示されない
//button1をクリックした後button2を連打せよ
private void button1_Click(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Button Clicked !");
}
Win32に詳しくないので理由を与えることが出来ないけど、
この場合もメッセージボックスは1度しか表示されない
680デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:46:38.12ID:59NEldNla >>676
完全スレ違いだけどそれはその老害の言ってることの方がただしいw
専門家はたいしたリスクないから騒ぎすぎだと言ってるのに
どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ
こういうの認知バイアスって言うんだけどさ
完全スレ違いだけどそれはその老害の言ってることの方がただしいw
専門家はたいしたリスクないから騒ぎすぎだと言ってるのに
どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ
こういうの認知バイアスって言うんだけどさ
681デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 21:00:47.10ID:J9WtEN9Ir 一流の専門家wとWHOと各国の対応見る限り
誰かの方が認知バイアスかかってると思う
世の中でこういわれてるけど逆の方に○○と言うのを言って俺スゲーしたいのが老害
誰かの方が認知バイアスかかってると思う
世の中でこういわれてるけど逆の方に○○と言うのを言って俺スゲーしたいのが老害
682デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:06:43.84ID:59NEldNla >>679
いや待て、ひょっとしてMessageBoxがフォーカスを奪うのが関係しているのかと思って
Console.WriteLine("Button Clicked !");
に変えてみたらなんと複数回表示されるなww
何てこったw
この現象は以下のコードで回避できた
private void button2_Click(object sender, EventArgs e)
{
if (button2.Enabled)
{
button2.Enabled = false;
Console.WriteLine("Button Clicked !");
}
Application.DoEvents();
button2.Enabled = true;
}
いや待て、ひょっとしてMessageBoxがフォーカスを奪うのが関係しているのかと思って
Console.WriteLine("Button Clicked !");
に変えてみたらなんと複数回表示されるなww
何てこったw
この現象は以下のコードで回避できた
private void button2_Click(object sender, EventArgs e)
{
if (button2.Enabled)
{
button2.Enabled = false;
Console.WriteLine("Button Clicked !");
}
Application.DoEvents();
button2.Enabled = true;
}
683デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 21:08:40.75ID:EEAl6aZb0684デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:09:59.26ID:59NEldNla >>681
WHOは声明で過剰反応するなと言ってる。
多くの伝染疾患の専門家の意見も同じ
各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね
テールリスクとしてはヤバいことになる可能性は確かにゼロではない。
その場合に誰も批判されたくないしね。
費用負担するのは納税者であって役人でも政治家でもないし
WHOは声明で過剰反応するなと言ってる。
多くの伝染疾患の専門家の意見も同じ
各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね
テールリスクとしてはヤバいことになる可能性は確かにゼロではない。
その場合に誰も批判されたくないしね。
費用負担するのは納税者であって役人でも政治家でもないし
685デフォルトの名無しさん (ワッチョイ ea02-L01+)
2020/01/31(金) 21:15:06.28ID:0h4Mv/T00 でも新型ウイルスで色々と未知だから警戒するに越したことはないと思う
686蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b501-KoMo)
2020/01/31(金) 21:23:40.30ID:r/XM8LG10 メッセージボックスはボタンかキーボードが押されるまで待つ。
ダイアログの一種。
ダイアログの一種。
687デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/01/31(金) 21:59:54.58ID:XKSM3aqP0 >>670
Postする
Postする
688デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/31(金) 22:34:59.12ID:y3M2GGQ20 >>670
1. Application.DoEvents()
2. PeekMessage()
3. await Task.Delay()
Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ
1. Application.DoEvents()
2. PeekMessage()
3. await Task.Delay()
Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ
689デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/01/31(金) 23:16:44.01ID:1nDsQqma0 引数でリスト渡すけど要素を変更して欲しくない時って結局どうすりゃいいの?
Immutableは使えない環境の場合
ReadOnlyCollectionは引数の型としては想定してないみたいだけど、キャスト防ごうと思ったらこれしかないよね?
Immutableは使えない環境の場合
ReadOnlyCollectionは引数の型としては想定してないみたいだけど、キャスト防ごうと思ったらこれしかないよね?
690デフォルトの名無しさん (ワッチョイ 3de7-ol1H)
2020/01/31(金) 23:27:33.43ID:mtUYlnXN0691デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/01/31(金) 23:43:34.80ID:BFU5CNzNM >>689
Deep Copy
Deep Copy
692デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/02/01(土) 00:38:43.88ID:1j1iFXRs0 拡張メソッドにしろクラスをシリアライズするの面倒じゃん
693デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 01:36:17.36ID:XuRc8/EP0 質問お願いいたします。
カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。
しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。
これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。
もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。
もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。
カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。
しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。
これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。
もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。
もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。
694デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 01:40:32.15ID:BvtANEfa0 あとから月消すのは無し?
695デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 01:54:56.01ID:EnxAFhi/0696デフォルトの名無しさん (ワッチョイ e5ad-8P7z)
2020/02/01(土) 01:55:14.57ID:HxAAP4sW0 control.Enabled=true/falseって即時処理されるのか?
WM_ENABLEメッセージをキューにPostするだけなのでは。
WM_ENABLEメッセージをキューにPostするだけなのでは。
697デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 02:05:13.79ID:XuRc8/EP0698デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 02:14:03.96ID:BvtANEfa0 >>697
正規の方法がすぐ解って良かったね
正規の方法がすぐ解って良かったね
699デフォルトの名無しさん (ワッチョイ b501-5BC/)
2020/02/01(土) 05:24:11.96ID:156Woc/f0 >>696
否定はできんけど、そんなことになってたらおそロシア
否定はできんけど、そんなことになってたらおそロシア
700デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 08:01:32.31ID:22BQCiJ60 しょーもない質問なんですが
起動時、必要なファイル(iniとか)を探して、無ければ起動しないというプロセスは
Form1_Load()にifでApplication.Exit()書いて強制終了にしてしまえば良いのでしょうか?
Form1_Load()の途中で強制終了はwindows的に無問題でしょうか?
起動時、必要なファイル(iniとか)を探して、無ければ起動しないというプロセスは
Form1_Load()にifでApplication.Exit()書いて強制終了にしてしまえば良いのでしょうか?
Form1_Load()の途中で強制終了はwindows的に無問題でしょうか?
701デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/01(土) 08:02:52.31ID:iBA7Xa3w0702デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 08:15:21.41ID:a0E2Gls+0 >>700
program.cs オススメ
program.cs オススメ
703デフォルトの名無しさん (ワッチョイ 7502-unxX)
2020/02/01(土) 08:17:35.37ID:dIJ1vCV90704デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 10:09:48.17ID:22BQCiJ60705デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 10:22:15.63ID:a0E2Gls+0 >>704
正常ならform作ってrun、異常ならformを作らない。
テンプレのApplication3行は、最初の2行がGUIの設定、最後がformの作成&実行。
判定条件がファイルの有無なら、GUIの設定待つ理由無いでしょ
正常ならform作ってrun、異常ならformを作らない。
テンプレのApplication3行は、最初の2行がGUIの設定、最後がformの作成&実行。
判定条件がファイルの有無なら、GUIの設定待つ理由無いでしょ
706デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/01(土) 11:05:21.70ID:iBA7Xa3w0 >>703
> Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ
そりゃそうだろ、だから何?
> てかWM_ENABLEはただの状態変化後の通知だし
違うぞ、ちゃんと読め
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/wm-enable
そもそも変化後の通知ならWM_ENABLEDになってるよ
> Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ
そりゃそうだろ、だから何?
> てかWM_ENABLEはただの状態変化後の通知だし
違うぞ、ちゃんと読め
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/wm-enable
そもそも変化後の通知ならWM_ENABLEDになってるよ
707デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 11:31:14.25ID:EnxAFhi/0 >control.Enabled=true/falseって即時処理されるのか?
何をもって「即時処理される」と言うのかに違いがあるから話が噛み合わない
何をもって「即時処理される」と言うのかに違いがあるから話が噛み合わない
708デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/01(土) 11:42:50.99ID:ik9eUhGlM709デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/01(土) 11:44:34.08ID:yH+BLTFV0 Exit! y=ー( ゚д゚)・∵. ターン
710デフォルトの名無しさん (ワッチョイ 667b-4Et2)
2020/02/01(土) 11:47:30.77ID:3zclQUgm0 sendmessageでもすりゃすぐわかる話じゃないのこれ
711デフォルトの名無しさん (ラクッペ MM6d-3Mgd)
2020/02/01(土) 12:04:42.89ID:2IjxM/PsM C#しか書けない奴はこれだから使えない
712デフォルトの名無しさん (ワッチョイ 66b0-x1ET)
2020/02/01(土) 13:11:09.93ID:neZT0y0y0713デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/01(土) 13:37:26.34ID:F+jbRz18M714デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/02/01(土) 13:40:52.92ID:1j1iFXRs0 フォームアプリケーションなどしんでしまえ
715デフォルトの名無しさん (ワッチョイ 6aad-unxX)
2020/02/01(土) 13:49:16.30ID:OqODUHFj0 >>706
「EnableWindowが戻る前だがWS_DISABLEDが立った後」だから状態変化後の通知でしょ
MSの動詞の使い方なんぞに一貫性は期待しちゃ駄目よ
もともとが定義の雑な質問なんだから現段階でこっちにイチャモン付けても実りはないと思うで
「EnableWindowが戻る前だがWS_DISABLEDが立った後」だから状態変化後の通知でしょ
MSの動詞の使い方なんぞに一貫性は期待しちゃ駄目よ
もともとが定義の雑な質問なんだから現段階でこっちにイチャモン付けても実りはないと思うで
716デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/02/01(土) 14:03:46.68ID:U7UUZgrK0 EnableWindowもメッセージ飛ばすだけだから何らかの方法でメッセージ処理させないとUI更新されない
717デフォルトの名無しさん (ワッチョイ 6aad-unxX)
2020/02/01(土) 15:00:01.57ID:OqODUHFj0 Winformsのコントロール実装だと大体Enabledの中で状態変数を変化させて
ついでにEnableWindowを呼んでネイティブ層での入力を無効化し
ついでにInvalidateを呼んでペイントハンドラをポストして
のちに出キューされたペイントハンドラがコントロールの状態を見ながら描画って流れやね
ついでにEnableWindowを呼んでネイティブ層での入力を無効化し
ついでにInvalidateを呼んでペイントハンドラをポストして
のちに出キューされたペイントハンドラがコントロールの状態を見ながら描画って流れやね
718デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 15:32:06.42ID:a0E2Gls+0719デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/01(土) 15:35:16.92ID:yH+BLTFV0 やっぱりDoEvents最強だな
720デフォルトの名無しさん (ワッチョイ b501-5BC/)
2020/02/01(土) 17:53:45.50ID:156Woc/f0 >>717
ありがとう、エロい人 m(_ _)m
ありがとう、エロい人 m(_ _)m
721デフォルトの名無しさん (ワッチョイ 491a-jgyw)
2020/02/01(土) 20:05:49.65ID:75XTVAQS0 先輩方、設計に関して質問があります
GameManagerというシングルトンにリソースやシステムの参照を固めて、
各々のクラスから静的経由でアクセスする神スタイルって何かデメリットありますか?
最初はResourceManagerみたいに細分化していたんですが、規模が大きくなるにつれてあれはどのクラスが持ってたっけ?と頭がとっ散らかって来たので、
ならいっそpartialでファイル分けた神クラスを用意した方が分かりやすさはあると思ったんです
俺、何か間違えてますかね?
GameManagerというシングルトンにリソースやシステムの参照を固めて、
各々のクラスから静的経由でアクセスする神スタイルって何かデメリットありますか?
最初はResourceManagerみたいに細分化していたんですが、規模が大きくなるにつれてあれはどのクラスが持ってたっけ?と頭がとっ散らかって来たので、
ならいっそpartialでファイル分けた神クラスを用意した方が分かりやすさはあると思ったんです
俺、何か間違えてますかね?
722デフォルトの名無しさん (ワッチョイ 6917-unxX)
2020/02/01(土) 20:12:40.38ID:hqbU2d/k0 神クラスでググればいっぱい出てくるだろ
つか神クラスって単語知ってるならもう何度も見てると思うけど
自分に都合の悪いところは見ないタイプかな?
つか神クラスって単語知ってるならもう何度も見てると思うけど
自分に都合の悪いところは見ないタイプかな?
723デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 20:21:47.40ID:BvtANEfa0 参照を直接持つ神クラスは巨大なクラスになって破綻しそう
partialはファイルで分けるだけの問題だし
画像リソースやサウンドクラスの参照を返す、サービスロケータパターンなら有り得る
XNAだとgameクラスがこれに相当
unityのGetComponentでは、コンポーネントパターンとの組み合わせで使われてたりはする
サービスロケータにも宗教的な賛否はあるが実用的ではある
partialはファイルで分けるだけの問題だし
画像リソースやサウンドクラスの参照を返す、サービスロケータパターンなら有り得る
XNAだとgameクラスがこれに相当
unityのGetComponentでは、コンポーネントパターンとの組み合わせで使われてたりはする
サービスロケータにも宗教的な賛否はあるが実用的ではある
724デフォルトの名無しさん (ワッチョイ 491a-jgyw)
2020/02/01(土) 20:33:59.73ID:75XTVAQS0 >>722
いや、単体で完結するクラスはしっかり最小構成で切り分けてるっすよ
ただ互いが互いを参照し合うクモの巣みたいなクラス群は、
参照先を一本にまとめる方が理に適っているのではないかと思って、
デザパタでいうFacadeやMadiatorを突き詰めて行ったら、
全てがGameManagerに集約されて神クラスっぽくなったのでこれはどうなんだと思った次第で
いや、単体で完結するクラスはしっかり最小構成で切り分けてるっすよ
ただ互いが互いを参照し合うクモの巣みたいなクラス群は、
参照先を一本にまとめる方が理に適っているのではないかと思って、
デザパタでいうFacadeやMadiatorを突き詰めて行ったら、
全てがGameManagerに集約されて神クラスっぽくなったのでこれはどうなんだと思った次第で
725デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/02/01(土) 20:41:23.47ID:JWECbGc70 >>721
どのクラスが持ってるか分からなくなるのはクラス分けが下手だったからだろう。
すべて神クラスに押し込んだら、こんどは逆にあるメンバが元々何のために用意したものか分からなくなったり、別のメンバと取り違えたりして、破綻するだけだと思うぞ。
どのクラスが持ってるか分からなくなるのはクラス分けが下手だったからだろう。
すべて神クラスに押し込んだら、こんどは逆にあるメンバが元々何のために用意したものか分からなくなったり、別のメンバと取り違えたりして、破綻するだけだと思うぞ。
726デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/01(土) 20:42:04.40ID:XYPXtNPRM 互いに参照し合うってのがそもそもあまり良くないけどそれは別の問題としておいておくとする
参照しあうとしても必要な相互参照だけ持ってればいい
相互参照してるから神クラスにするって発想は全く繋がらない
無関係な参照を持ってたらコード読んだ人が混乱するだろ
参照しあうとしても必要な相互参照だけ持ってればいい
相互参照してるから神クラスにするって発想は全く繋がらない
無関係な参照を持ってたらコード読んだ人が混乱するだろ
727デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/01(土) 21:01:38.43ID:agRHfxgWa728デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/01(土) 21:03:13.43ID:agRHfxgWa いや、グローバル変数という言い方は変かw
「グローバル変数」と書くべきだった
「グローバル変数」と書くべきだった
729デフォルトの名無しさん (アウアウウー Sa21-jaaY)
2020/02/01(土) 21:34:07.42ID:Ar+g0K07a >>724
実際にコードを書く人間を無視して、設計ありきで開発を統制しようとすると必ず破綻するものだ
モジュール化は基本的に開発の作業単位と一致しているのが理想
その作業単位こそがメソッドになったりクラスになったり、
開発チームや部門などもっと大きな粒度ならドメインやマイクロサービスになるわけだ
君が一人で開発していて、一緒に全部触ることが多いんだったらそれらは一箇所にあるのが自然
実際にコードを書く人間を無視して、設計ありきで開発を統制しようとすると必ず破綻するものだ
モジュール化は基本的に開発の作業単位と一致しているのが理想
その作業単位こそがメソッドになったりクラスになったり、
開発チームや部門などもっと大きな粒度ならドメインやマイクロサービスになるわけだ
君が一人で開発していて、一緒に全部触ることが多いんだったらそれらは一箇所にあるのが自然
730デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 00:24:57.00ID:iIujTevhr 処理を神クラスに全部入れるのは感心しない
クラスAとBで○○をするクラスをたくさん作ってそれを神クラスが使うならまだわかる
クラスAとBで○○をするクラスをたくさん作ってそれを神クラスが使うならまだわかる
731デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 00:27:26.42ID:iIujTevhr 自分ではある処理にAとBしか使わないつもりだったのにいつの間にかCを参照してて
状態によって動いたり動かなかったりするのを避けられる
状態によって動いたり動かなかったりするのを避けられる
732デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/02(日) 02:17:31.38ID:a0o6eu/N0 >>730
宙ぶらりんだとxmlに出せねぇから!
宙ぶらりんだとxmlに出せねぇから!
733デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/02(日) 07:46:40.77ID:x40xU8c9M >>729
めちゃくちゃなこと言って初心者を惑わすの良くないp
めちゃくちゃなこと言って初心者を惑わすの良くないp
734デフォルトの名無しさん (ワッチョイ 5961-KBmY)
2020/02/02(日) 08:08:49.36ID:ukQ22csD0 staticなクラスにロジックを集中させるのが今風
735デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 17:13:46.82ID:IAcIXRCS0 https://ideone.com/L4OaZ0
ユーザーが自分でカスタム書式指定文字列を入力して、
出力名を決められるコードを書きました。
switch文のところが冗長な気がしますが、
もっとよい実装方法はありますでしょうか。
ユーザーが自分でカスタム書式指定文字列を入力して、
出力名を決められるコードを書きました。
switch文のところが冗長な気がしますが、
もっとよい実装方法はありますでしょうか。
736デフォルトの名無しさん (ワッチョイ a5b0-/fp1)
2020/02/02(日) 17:49:10.92ID:PECaEDf90 オブジェクト指向が全然わかりません。助けてください。
オブジェクト指向では、クラスしか使わないのでしょうか。
そもそも関数とクラスの使い分けがわかりません。
関数、クラスどちらでも良いように思えてしまいます。
クラス内で別のクラスや関数を使うことはあるのでしょうか。
その場合、呼ぶクラスの配置は、外にすればよいのか混乱しています。
オブジェクト指向では、クラスしか使わないのでしょうか。
そもそも関数とクラスの使い分けがわかりません。
関数、クラスどちらでも良いように思えてしまいます。
クラス内で別のクラスや関数を使うことはあるのでしょうか。
その場合、呼ぶクラスの配置は、外にすればよいのか混乱しています。
737デフォルトの名無しさん (ワッチョイ 6917-unxX)
2020/02/02(日) 17:49:25.52ID:pxkKXZqI0 https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeFormat.cs#L447
DoeNetCoreの実装も似たようなものだから好きにすればいいんじゃないの?
DoeNetCoreの実装も似たようなものだから好きにすればいいんじゃないの?
738デフォルトの名無しさん (ワッチョイ 6d7b-0ef2)
2020/02/02(日) 17:57:12.48ID:2oi7q6200 >>736
オブジェクト指向が理解できなくてもC#は書けるからそれだけならスレ違い
>クラス内で別のクラスや関数を使うことはあるのでしょうか
コントロールもクラスだしむしろクラス内で別のクラス使わずに書くことの方が少ない
関数はC#には無い定義だからどんな意味で書いているかわからない
初心者ならそんなこと気にせずにコード書いておけばそのうち身につく
オブジェクト指向が理解できなくてもC#は書けるからそれだけならスレ違い
>クラス内で別のクラスや関数を使うことはあるのでしょうか
コントロールもクラスだしむしろクラス内で別のクラス使わずに書くことの方が少ない
関数はC#には無い定義だからどんな意味で書いているかわからない
初心者ならそんなこと気にせずにコード書いておけばそのうち身につく
739デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 19:05:51.36ID:iIujTevhr740デフォルトの名無しさん (ワッチョイ a5b0-/fp1)
2020/02/02(日) 19:34:54.43ID:PECaEDf90741デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/02(日) 20:19:18.10ID:o79zkFFu0 >>735
if(isEscape){
switch(f){
case 'c':
result += Code;
break;
case 'n':
result += Name;
break;
case 'y':
result += DateTime.Now.ToString("yyyy");
break;
case 'm':
result += DateTime.Now.ToString("MM");
break;
case 'd':
result += DateTime.Now.ToString("dd");
break;
default:
result += f;
break;
}
isEscape = false;
} else if(f == '%'){
isEscape = true;
} else {
result += f;
}
if(isEscape){
switch(f){
case 'c':
result += Code;
break;
case 'n':
result += Name;
break;
case 'y':
result += DateTime.Now.ToString("yyyy");
break;
case 'm':
result += DateTime.Now.ToString("MM");
break;
case 'd':
result += DateTime.Now.ToString("dd");
break;
default:
result += f;
break;
}
isEscape = false;
} else if(f == '%'){
isEscape = true;
} else {
result += f;
}
742デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 20:24:30.59ID:p5iYeTFJa743デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/02(日) 21:33:42.70ID:Ng7YaIlp0744デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 21:50:42.59ID:p5iYeTFJa745デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 22:59:32.43ID:1z8f9n64M こういうのは結局if羅列が正解なんだよな
switchだと値の単純比較しかできないからifで柔軟に分岐させるほうがいい
あらかじめ書式を増やせるような工夫は大抵の場合YAGNIでコードを複雑に遅くするだけで終わる
switchだと値の単純比較しかできないからifで柔軟に分岐させるほうがいい
あらかじめ書式を増やせるような工夫は大抵の場合YAGNIでコードを複雑に遅くするだけで終わる
746デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 23:04:32.56ID:p5iYeTFJa >>745
なんか2行目と3行目が矛盾してると思うんだけどw
なんか2行目と3行目が矛盾してると思うんだけどw
747デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:04:47.87ID:IAcIXRCS0748デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:06:51.13ID:IAcIXRCS0749デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 23:07:46.54ID:p5iYeTFJa750デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:21:57.19ID:IAcIXRCS0751デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 23:31:26.88ID:1z8f9n64M >>746
全く矛盾してないけど?
全く矛盾してないけど?
752デフォルトの名無しさん (スプッッ Sdea-8Mri)
2020/02/02(日) 23:39:18.65ID:wS50t4rMd >>745
パターンマッチングやwhenって知ってるかい?
パターンマッチングやwhenって知ってるかい?
753デフォルトの名無しさん (ワッチョイ 4a47-6m4/)
2020/02/02(日) 23:39:49.23ID:Lpo4bRzP0 >>746
確かに矛盾してるw
確かに矛盾してるw
754デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 23:52:30.43ID:1z8f9n64M755デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/02(日) 23:57:18.28ID:Ng7YaIlp0 >>744
うーん、参考にはなるがpremature abstractionに感じる
置換箇所の検出と置換を分けるかどうかより
Productが直接SymbolTranslatorを参照したり
formatルールがコンストラクタに入り込んできてたり
EvaluatorみたいなProductと関係ないメソッドが生えてるほうがずっと気になる
クラスを分けるならまずProductFormatterに委譲する形にしておいて
他のFormatterを書く時にもう一段階抽象化するかどうかを考えたほうがいい気がする
うーん、参考にはなるがpremature abstractionに感じる
置換箇所の検出と置換を分けるかどうかより
Productが直接SymbolTranslatorを参照したり
formatルールがコンストラクタに入り込んできてたり
EvaluatorみたいなProductと関係ないメソッドが生えてるほうがずっと気になる
クラスを分けるならまずProductFormatterに委譲する形にしておいて
他のFormatterを書く時にもう一段階抽象化するかどうかを考えたほうがいい気がする
756デフォルトの名無しさん (ワッチョイ 6aad-8Mri)
2020/02/03(月) 01:04:19.06ID:ergCU4VA0 >>754
具体的には?
具体的には?
757デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/03(月) 01:40:48.87ID:uUg+nbORM >>756
while Nが文字列長より小さい
if N文字目以後に%を含まない then 終了
if N文字目が% then ネストしてプレースホルダ解析してNを更新
else 次の%直前までまとめて読み取ってNを更新
例えばこういうの
while Nが文字列長より小さい
if N文字目以後に%を含まない then 終了
if N文字目が% then ネストしてプレースホルダ解析してNを更新
else 次の%直前までまとめて読み取ってNを更新
例えばこういうの
758デフォルトの名無しさん (スッップ Sd0a-OAYN)
2020/02/03(月) 02:26:49.09ID:qfSpWMgCd C#のソースは改行コードはCR + LFで書くんですか?
759デフォルトの名無しさん (ワッチョイ ea79-/fp1)
2020/02/03(月) 07:35:26.68ID:0n0692Cx0 Environment.NewLine
760デフォルトの名無しさん (オッペケ Srbd-TLHW)
2020/02/03(月) 08:12:45.52ID:rL8lKTlkr ビルドはLF・CRLFどっちでも出来るので
後は好みとeditorconfigの設定次第<ソースの改行
自分の場合最近はLFで統一するようにしてる
後は好みとeditorconfigの設定次第<ソースの改行
自分の場合最近はLFで統一するようにしてる
761デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/04(火) 19:06:59.64ID:26FK/H9g0 Genericのtype constraintでTを+=演算子が使える型だって宣言することできる?
762デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/04(火) 19:16:33.46ID:XAK/YcTOr 演算子そのものが無理
763デフォルトの名無しさん (ドコグロ MM15-jaaY)
2020/02/04(火) 20:43:01.50ID:gbPgeOt9M764デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/04(火) 23:41:46.07ID:26FK/H9g0765デフォルトの名無しさん (アウアウウー Sa9b-YLe+)
2020/02/05(水) 01:32:24.11ID:6fUVVF1Va 理由になってないじゃん
結局現実的なユースケースは無いってことだな
結局現実的なユースケースは無いってことだな
766デフォルトの名無しさん (ワッチョイ d71f-fAzD)
2020/02/05(水) 22:48:02.31ID:YDjicEKX0 ちょっと教えて下さい。
CADで書いた2次元の平面図を読み取りエクセル等のシートにに貼り付ける事は可能ですか?
可能であれは加えて、アルファベットと数字を取得も出来ますか?
CADで書いた2次元の平面図を読み取りエクセル等のシートにに貼り付ける事は可能ですか?
可能であれは加えて、アルファベットと数字を取得も出来ますか?
767デフォルトの名無しさん (ワッチョイ d71f-fAzD)
2020/02/05(水) 22:51:43.41ID:YDjicEKX0 もしくは、PDFをコピペして、アルファベットと数字を読み取れますか?
768デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/05(水) 22:52:57.09ID:hUfo/ofY0 書き込むスレ間違えてない?
769デフォルトの名無しさん (ワッチョイ d701-C+H6)
2020/02/05(水) 23:17:28.76ID:AmvkifrY0770デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:15:51.94ID:p3rMUukc0 質問よろしくお願いします
親フォームに作ったlistBoxのItemsプロパティを子フォームから取得したいので
公開用のpublicのプロパティを作って、(Form1)this.Ownerで取得する方法でやろうとしてるのですが
Itemsプロパティの型が分からずできません。objectではできませんでした。
同じことをtextBox.Textでやるとstring型で簡単にできました。
親フォームに作ったlistBoxのItemsプロパティを子フォームから取得したいので
公開用のpublicのプロパティを作って、(Form1)this.Ownerで取得する方法でやろうとしてるのですが
Itemsプロパティの型が分からずできません。objectではできませんでした。
同じことをtextBox.Textでやるとstring型で簡単にできました。
771デフォルトの名無しさん (ワッチョイ 7f7c-nfXJ)
2020/02/06(木) 11:26:06.63ID:gSRAmVRD0772デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:32:10.09ID:p3rMUukc0773デフォルトの名無しさん (ワンミングク MM7f-gP8z)
2020/02/06(木) 11:39:03.53ID:Jb1VrEaQM 型うんぬん以前の話だと思うの
親フォームのうえでなら、Items扱えてるの?
親フォームのうえでなら、Items扱えてるの?
774デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:42:39.07ID:p3rMUukc0 >>773
はい。親フォーム上なら取得できます。
はい。親フォーム上なら取得できます。
775デフォルトの名無しさん (ワッチョイ 7f7c-nfXJ)
2020/02/06(木) 11:59:57.37ID:gSRAmVRD0 >>772
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.textbox.text?view=netframework-4.8
TextBox.Textがstring型だって分かってるなら、そっちの記述と比較すればいいじゃん?
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.textbox.text?view=netframework-4.8
TextBox.Textがstring型だって分かってるなら、そっちの記述と比較すればいいじゃん?
776デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 12:25:01.67ID:3avRIqPoa >>770
一般的にはそもそもForm上のコントロールを外から参照するのは不適切。
それ、「PCのモニターに写っている同じ映像を別のモニターにも表示したいので
PCのモニターからHDMI出力を出せないか?」って言ってるのと同じでは?
発想が間違ってるよ。
なぜ映像のソース側にその機能を求めないでただの表示機に求める?
一般的にはそもそもForm上のコントロールを外から参照するのは不適切。
それ、「PCのモニターに写っている同じ映像を別のモニターにも表示したいので
PCのモニターからHDMI出力を出せないか?」って言ってるのと同じでは?
発想が間違ってるよ。
なぜ映像のソース側にその機能を求めないでただの表示機に求める?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 箱根そばのうまさは異常
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
