X



C#, C♯, C#相談室 Part94
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 935f-5Uxj)2019/03/20(水) 18:57:36.47ID:ZZcTomnN0
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0952デフォルトの名無しさん (ワッチョイ a701-4A0X)2021/12/13(月) 09:12:51.67ID:7pnzZ4JB0
>>937
条件式をネストしたり&でつないだりと複雑にするのは難読性が高くなるから分けたほうがいいだろ
どういう条件ならMthod()を呼ぶのか明確に

if(Input){
//事前処理
judge=(A==null) ? true: //Aがnullのとき
A.Bool==false ? true: //Aの子要素がfalseのとき
false; //それ以外
if(judge) Method();
//共通処理
...
}
0954デフォルトの名無しさん (ワッチョイ df01-c3Ov)2021/12/13(月) 11:44:51.75ID:zykNHKxZ0
skipするほうが例外的処理だろうからskip条件を明確にしてearly returnしたほうがいいと思う
論理式の細かい書き方よりも意図が伝わるかどうかのほうが大事

if (ShouldSkip(a)) {
return;
}
Method();

bool ShouldSkip(A a) {
return a?.Bool ?? false;
}
0955デフォルトの名無しさん (ワッチョイ bf62-Trcr)2021/12/13(月) 14:01:49.98ID:z2L+bKXw0
メソッドにすんのはいいけど、>>937 が入力を検知したときメソッドを実行したいって言ってんだからその通りに書けばいい
設計書通りに条件分岐すりゃいいのに無駄に置き換えて実装する人多いけどなんなんだろうね

if(入力検知(input, A)){
Method();
}

bool 入力検知(bool input, A a){
return input && a != null && a.Bool;
}
0956デフォルトの名無しさん (アウアウウー Sa6b-p36F)2021/12/13(月) 14:22:24.69ID:6wRfW5vFa
昼飯食いながら適当だから何か勘違いしてるかもしれないけど、>>937って要は
ある条件を満たした時だけMethodを実行したい、それだけでしょ?

だったら四の五の言わずに素直にそう書くのが一番じゃないの。
if( input && (!A?.Bool ?? false)) Method();
0957デフォルトの名無しさん (アウアウウー Sa6b-5lnE)2021/12/13(月) 14:29:51.31ID:KmNdaGVTa
求めてるのは「もっとスマートな書き方」だからな
主観的な問題だから、俺らが言えるのは「こういう書き方もある」ってのだけ
正解(どれが一番か)を決めれるのは本人だけ
0958デフォルトの名無しさん (アウアウウー Sa6b-p36F)2021/12/13(月) 14:47:42.73ID:6wRfW5vFa
コードでも文章でも読み手に「要するにそれってどういうこと?」って思わせないのが一番。
これもコードでも文章でもそうだけど、読みにくいものは書いた本人がそこをよく理解せずに書いている。
0961デフォルトの名無しさん (ワッチョイ df01-c3Ov)2021/12/13(月) 16:35:33.81ID:zykNHKxZ0
>>955,956
>>937を読む限りでは入力を検知する処理と
検知した後に特定の処理をスキップするかどうかを判断する処理は別じゃないのかな?

「A.Boolがtrueなら入力を検知しない(or 入力を無視する)」ってことなら
入力よりも先にA.Boolを確認するよね
0981デフォルトの名無しさん (ワッチョイ a787-3oVZ)2021/12/16(木) 00:21:19.35ID:R2Peltay0
new()で書けるようになったけど、コンストラクタで初期設定値渡すようにしちゃうから全然使わんなぁ。
セッター潰してコンストラクタで設定するのが好き
0994デフォルトの名無しさん (ワッチョイ ff6e-n/si)2021/12/19(日) 09:44:58.73ID:QHfeHH9E0
WinFormsを独学でやっているのですが教えて下さい
そこそこの規模のソフトは作れるようになってますが
VSで開発していくうえで、フォルダ構成ってどう考えればいいですかね
いままではDB関連をDBフォルダ
フォームはFormにまとめてさらにその中に機能別にフォルダを
細かいクラスファイルはClassというフォルダに
DBとの受け渡し(sql書いてFormとの受け渡しModelみたいなもの?)は
Modelというフォルダにまとめています

プロの皆様はチームで作っていかれる際に
会社によりけりかもしれませんが一般的なフォルダ構成の考え方ってあるんでしょうか
0996デフォルトの名無しさん (アウアウウー Sa9f-f5lq)2021/12/19(日) 10:00:48.95ID:n0pWJPWXa
なんのフォルダなのか理解できない
プロジェクト(visual studio上でのプロジェクト)内じゃフォルダ切ることはないな
プロジェクトがある程度大きくなったらクラスライブラリに分ける
0998デフォルトの名無しさん (ワッチョイ ff6e-n/si)2021/12/19(日) 10:33:08.48ID:QHfeHH9E0
>>995
そうなんですね、気をつけます

>>996
たとえば画面数でも100超えて、機能部分のClassファイルも100越えてくると
いちいち該当ファイル探すのが面倒でフォルダに分けたって感じです
前はPHPのフレームワークとか触ったときは
たとえばcontroller model viewとフォルダも階層構造みたいになっていて
そういう感覚もあります
チームでやられていると、どこに何のファイルが散らばっているか
わからなくなったりしないのですか? きちんと仕様書があるから関係ないのですかね

やっぱりクラスライブラリ(DLL化?)もちゃんと理解しないと駄目ですよね
一人で作ってるので、DLL化するほうが手間な気がして避けてました
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1004日 15時間 55分 34秒
10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況