■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C#, C♯, C#相談室 Part93©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb)
2017/04/22(土) 08:52:00.93ID:iVvswOrb0200デフォルトの名無しさん (ブーイモ MMc7-80IO)
2018/05/06(日) 17:34:01.02ID:ZPoK8KSTM WPFそのものの将来性はともかくとして、その技術のエッセンスが次代に引き継がれると思うんです。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。
201デフォルトの名無しさん (アウアウエー Sa82-oFLj)
2018/05/06(日) 17:36:34.98ID:w10wIaHya >>199
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話
俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話
俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因
202デフォルトの名無しさん (アウアウウー Sacf-Tk2U)
2018/05/06(日) 17:37:23.44ID:6XezKW2ea 潰しがきくってんならなおさら独自仕様なんぞあかんやろ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ
203デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 17:39:54.31ID:YMV7ENjt0 >>202
XAML
XAML
204デフォルトの名無しさん (アウアウウー Sacf-Tk2U)
2018/05/06(日) 17:41:16.14ID:6XezKW2ea205デフォルトの名無しさん (ワッチョイ bf8a-+yEv)
2018/05/06(日) 17:43:51.97ID:EPydt9+c0 GDIが使えない時点でゴミ
WPFでCADを提供してみろ
WPFでCADを提供してみろ
206デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 18:14:23.28ID:8BI4PAGy0 >>202
対案示してくれると検討もできるんですけど。
対案示してくれると検討もできるんですけど。
207デフォルトの名無しさん (アウアウウー Sacf-Tk2U)
2018/05/06(日) 18:17:03.64ID:6XezKW2ea >>206
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん
208デフォルトの名無しさん (アウアウウー Sacf-B51h)
2018/05/06(日) 18:17:55.59ID:JGiuZYwWa formとwpfどっちかじゃなくて、状況に応じてどっちか使えばいい
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん
209デフォルトの名無しさん (ワッチョイ 277b-gjEc)
2018/05/06(日) 18:18:35.39ID:gpR98zCG0 何でこのスレ来てるの?
210デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 18:21:30.52ID:gzoDeGmX0 xamlが単なるコードトランレート言語だったなんて知らなかったんだよ。
211デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 18:31:06.82ID:8BI4PAGy0212デフォルトの名無しさん (ワッチョイ 1ec9-XJxX)
2018/05/06(日) 18:36:24.83ID:Yj4OtQcz0 最近form触る機会あったけど、WPFになれた後だとバインディングが面倒でならない
formはformでわざわざ部品探したり作る必要ないから良いんだけどね
formはformでわざわざ部品探したり作る必要ないから良いんだけどね
213デフォルトの名無しさん (ワッチョイ deed-pRpi)
2018/05/06(日) 18:49:36.56ID:c85H7Qr90 Bindingが遅すぎて使い物にならない
214デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:05:20.38ID:8BI4PAGy0 なんか変なイチャモン付けてる人いるけど。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。
215デフォルトの名無しさん (ワッチョイ 03c3-m5Zl)
2018/05/06(日) 19:06:34.14ID:lPSPWHr00 昔から居ついてるから一々突っからなくて宜しい
216デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:13:48.84ID:8BI4PAGy0217デフォルトの名無しさん (アウアウウー Sacf-B51h)
2018/05/06(日) 19:15:40.37ID:JGiuZYwWa formでCAD作ってる奴ぐぐると日本人でも複数いるよ
218デフォルトの名無しさん (ワッチョイ 0e33-Tk2U)
2018/05/06(日) 19:17:40.07ID:OZSh5wZJ0219デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:21:54.60ID:8BI4PAGy0220デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:24:56.35ID:8BI4PAGy0221デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:27:17.19ID:8BI4PAGy0222デフォルトの名無しさん (ワッチョイ 0e33-Tk2U)
2018/05/06(日) 19:34:40.78ID:OZSh5wZJ0 XAMLの筋が悪い一例としてIDEサポートがHTMLにすら劣る点が上げられる
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ
223デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 19:44:28.98ID:8BI4PAGy0 >>222
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。
224デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 19:47:05.22ID:YMV7ENjt0 >>222
俺も落ちたことないんだけど、どんな環境で何したん?
俺も落ちたことないんだけど、どんな環境で何したん?
225デフォルトの名無しさん (ワッチョイ 1e81-YjVT)
2018/05/06(日) 19:59:30.59ID:P5UQ0avb0 WPFはもちろん最良ではないけど
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ
226デフォルトの名無しさん (ワッチョイ 0e33-Tk2U)
2018/05/06(日) 20:10:59.67ID:OZSh5wZJ0227デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 20:17:33.07ID:YMV7ENjt0 >>226
ハードウェアアクセラレーションの問題ではなくて?
ハードウェアアクセラレーションの問題ではなくて?
228デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:19:15.57ID:8BI4PAGy0 >>226
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。
229デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 20:22:22.92ID:YMV7ENjt0 >>228
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194
230デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:28:51.95ID:8BI4PAGy0231デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 20:30:40.96ID:YMV7ENjt0232デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:37:41.43ID:8BI4PAGy0233デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:39:01.49ID:8BI4PAGy0234デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:40:12.87ID:8BI4PAGy0235デフォルトの名無しさん (ワッチョイ 0e33-Tk2U)
2018/05/06(日) 20:46:08.35ID:OZSh5wZJ0 わかりやすく発狂してんなー
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか
>>229
毎度再現するんでもないからなー
Formでは一回も落ちたことないからXAML関係が比較的不安定なのはそうじゃないの
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか
>>229
毎度再現するんでもないからなー
Formでは一回も落ちたことないからXAML関係が比較的不安定なのはそうじゃないの
236デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 20:58:22.97ID:8BI4PAGy0237デフォルトの名無しさん (ワッチョイ 23d2-xC2/)
2018/05/06(日) 21:16:41.42ID:YMV7ENjt0 >>232
だから俺は違うってばwww
だから俺は違うってばwww
238デフォルトの名無しさん (ワッチョイ 1ecc-ALiW)
2018/05/06(日) 21:31:09.89ID:JjviwauC0 アンカさえまともに書けないやつがコード書けるのか?
239デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 21:39:39.84ID:8BI4PAGy0240デフォルトの名無しさん (ワンミングク MMfa-+yEv)
2018/05/07(月) 11:50:51.85ID:zM6nOBFcM わたし錯乱某
241デフォルトの名無しさん (ワッチョイ 7bd6-pRpi)
2018/05/08(火) 02:53:46.31ID:EHD0XpOQ0 わい、コンソールアプリしか作ってない
242デフォルトの名無しさん (ワッチョイ 0ad2-xC2/)
2018/05/08(火) 03:04:56.28ID:wFWfdcvC0 >>241
.NET Core Global Toolsおもしろいよね
.NET Core Global Toolsおもしろいよね
243デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/11(金) 22:56:53.52ID:oqUyZvi20 フォームアプリケーションで
A.初期設定画面
表示する円の大きさ、数、表示座標の範囲などの初期値を設定
B.ゲーム画面
初期設定画面からAの初期値を取得し、メンバ変数に代入して
円を表示する
円を消去する
円の当たり判定をする
などの3つぐらいのメソッドで使用しています。
Bのコードが長くなって200行ぐらいになると、
メンバ変数をどこで使ってるのか全部見なければいけないのは
可読性が悪いのかなと思うようになってきました。
3つのメソッドそれぞれのグループ変数として
それぞれ3つのメソッド内でAの初期値を見に行くコーディングをしたほうが良いのでしょうか?
メンバ変数の方が冗長性はないけど可読性が低くて、
メソッドないのグループ変数にしたほうが冗長性が高いが可読性も高い気がします。
独学でコーディングしているので、お仕事でプログラミングされている方のご意見を伺いたいです。
A.初期設定画面
表示する円の大きさ、数、表示座標の範囲などの初期値を設定
B.ゲーム画面
初期設定画面からAの初期値を取得し、メンバ変数に代入して
円を表示する
円を消去する
円の当たり判定をする
などの3つぐらいのメソッドで使用しています。
Bのコードが長くなって200行ぐらいになると、
メンバ変数をどこで使ってるのか全部見なければいけないのは
可読性が悪いのかなと思うようになってきました。
3つのメソッドそれぞれのグループ変数として
それぞれ3つのメソッド内でAの初期値を見に行くコーディングをしたほうが良いのでしょうか?
メンバ変数の方が冗長性はないけど可読性が低くて、
メソッドないのグループ変数にしたほうが冗長性が高いが可読性も高い気がします。
独学でコーディングしているので、お仕事でプログラミングされている方のご意見を伺いたいです。
244デフォルトの名無しさん (ワッチョイ 2565-5o/y)
2018/05/11(金) 23:05:04.79ID:KxM4SNOx0245デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 08:19:23.20ID:RvuVG0qm0 Aは
public int GetTimeLimit
{
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out int timeLimit);
if (resultOfGetTimeLimit)
return timeLimit;
else
return 0;
}
が10個ぐらいあるだけで、Aの可読性はいいのですが。
Bのクラスから→Aのインスタンス生成→フォーム表示しているので、
Bが
1. Aからの初期値取得
2. 取得した初期値でゲーム画面表示
3. ゲーム中の処理
4. スコアデータとAの初期値テキストファイルへの書き出し
という4つの異なった処理(特に2,3のコードが長い)をしているのと、
Aのコードの量も400行近くになっているのが可読性低下の原因かと思います。
public int GetTimeLimit
{
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out int timeLimit);
if (resultOfGetTimeLimit)
return timeLimit;
else
return 0;
}
が10個ぐらいあるだけで、Aの可読性はいいのですが。
Bのクラスから→Aのインスタンス生成→フォーム表示しているので、
Bが
1. Aからの初期値取得
2. 取得した初期値でゲーム画面表示
3. ゲーム中の処理
4. スコアデータとAの初期値テキストファイルへの書き出し
という4つの異なった処理(特に2,3のコードが長い)をしているのと、
Aのコードの量も400行近くになっているのが可読性低下の原因かと思います。
246デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 08:19:38.98ID:RvuVG0qm0 Bの別のクラスを作って分離させたいんだけどBからAのインスタンス生成しているので、
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。
これって画面遷移が良くないってことなのかなぁ?
一般的に1234の処理を一つのフォームクラスに押し込んでクラスメンバ変数10個程度、
400行のコードって可読性の観点から許容されるものなんでしょうか?
チームでプログラミングされているプロの方の意見をお伺いできればと思います。
(長文本当に申し訳ありません)
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。
これって画面遷移が良くないってことなのかなぁ?
一般的に1234の処理を一つのフォームクラスに押し込んでクラスメンバ変数10個程度、
400行のコードって可読性の観点から許容されるものなんでしょうか?
チームでプログラミングされているプロの方の意見をお伺いできればと思います。
(長文本当に申し訳ありません)
247デフォルトの名無しさん (ワッチョイ cb81-nFcL)
2018/05/12(土) 08:45:11.14ID:KCIDKf2Q0 人の話聞いてないねw
じゃあもう好きにしたらいいと思うよ
じゃあもう好きにしたらいいと思うよ
248デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 09:11:24.66ID:RvuVG0qm0 >>247
私の説明か理解が悪いのでしょうか?
Aは100行未満のコード245のコードの連続なので簡単に読めます。
Bが読みづらいのが問題なので、Aの機能を分離しても解決にはならないような。
BがAが取得したデータ保持とゲーム内でのデータ処理の二つを担っているのがまずいとのご指摘であれば、
それはそうかと思いますが、データ保持と処理が画面と密接に関係しているので分離し難いというか・・・。
コード全部見せないで質問すること自体に無理があるのかもしれませんね。
すいません。
私の説明か理解が悪いのでしょうか?
Aは100行未満のコード245のコードの連続なので簡単に読めます。
Bが読みづらいのが問題なので、Aの機能を分離しても解決にはならないような。
BがAが取得したデータ保持とゲーム内でのデータ処理の二つを担っているのがまずいとのご指摘であれば、
それはそうかと思いますが、データ保持と処理が画面と密接に関係しているので分離し難いというか・・・。
コード全部見せないで質問すること自体に無理があるのかもしれませんね。
すいません。
249デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 09:18:34.84ID:RvuVG0qm0 たぶん端的にこう質問すればよかったのかと思います。
フォームを生成しているクラスのコードが400行、メンバ変数が10個、メソッドが8個、で、
メンバ変数はそれぞれのメソッドで3個ぐらい引用しています。
こういうコードってチームで作業してるプロから見て許容できる範囲でしょうか?
処理が多少冗長になってもメンバ変数を少なくして、メソッド内でグローバル変数として定義するべきでしょうか?
フォームを生成しているクラスのコードが400行、メンバ変数が10個、メソッドが8個、で、
メンバ変数はそれぞれのメソッドで3個ぐらい引用しています。
こういうコードってチームで作業してるプロから見て許容できる範囲でしょうか?
処理が多少冗長になってもメンバ変数を少なくして、メソッド内でグローバル変数として定義するべきでしょうか?
250デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 09:19:07.30ID:vhGL8v7ea >>248
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離
Windowのインスタンスの内部で色々な処理を行うのがそもそも間違ってる
描画と変更の通知以外何もさせるな
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離
Windowのインスタンスの内部で色々な処理を行うのがそもそも間違ってる
描画と変更の通知以外何もさせるな
251デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 10:01:27.82ID:RvuVG0qm0 >>250
ありがとうございます。
理解できました。
フォーム生成するクラスはフォームの描画、変更に特化
A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス
分かりやすい。
これがオブジェクト指向ってやつか・・・。
ありがとうございます。
理解できました。
フォーム生成するクラスはフォームの描画、変更に特化
A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス
分かりやすい。
これがオブジェクト指向ってやつか・・・。
252デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 10:07:34.76ID:RvuVG0qm0 自分は成り行きでBの機能の一部をCに放り込んでしまったから、
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。
入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。
こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。
入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。
こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。
253デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/12(土) 11:04:14.67ID:PbE4ojLD0 >>251
それはOOPではなくMVCな。一応。
それはOOPではなくMVCな。一応。
254デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 11:05:17.79ID:vhGL8v7ea まぁGUIアプリケーションでのOOPの具体的なアーキテクチャだから
255デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 11:23:13.92ID:RvuVG0qm0 MVCは初耳で今ググって勉強しました。
やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。
手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。
こういうのが学べるいい本があったらいいなぁ。
やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。
手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。
こういうのが学べるいい本があったらいいなぁ。
256デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 11:32:37.31ID:RvuVG0qm0 dataHolderクラスってABCDどれからもアクセスすることになるんですが、
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?
バグの温床になるからダメ?
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?
バグの温床になるからダメ?
257デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 11:36:18.82ID:RvuVG0qm0 マイクロソフトのホームページだとPublicにしてますね。
これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。
うーん・・・。
世の中そんなもんなのか?
これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。
うーん・・・。
世の中そんなもんなのか?
258デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 11:43:38.40ID:vhGL8v7ea >>256
お好きに
結局は書きやすさと安全性のトレードオフ
ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい
お好きに
結局は書きやすさと安全性のトレードオフ
ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい
259デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 11:57:15.21ID:RvuVG0qm0 >>258
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、
可読性、コーディングの利便性、安全性
全部満たせますね。
なんて便利なんだ…。( ゚д゚)
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、
可読性、コーディングの利便性、安全性
全部満たせますね。
なんて便利なんだ…。( ゚д゚)
260デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 12:02:17.65ID:vhGL8v7ea >>259
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ
261デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/12(土) 12:04:38.53ID:F4kLnVK3p MVCって、VとCの境界が曖昧になりがちだよな。
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。
262デフォルトの名無しさん (アウアウウー Sa89-5o/y)
2018/05/12(土) 12:06:20.36ID:vhGL8v7ea263デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
2018/05/12(土) 12:12:09.32ID:F4kLnVK3p そそ、MVCやMVPってのは、オンラインサービスみたいにデータ管理と画面操作が隔離してる様なコンピュータサービスでなら適してるけど、スマホとかパソコンの中で完結した操作性重視のアプリの設計には適して無いんだよな。
264デフォルトの名無しさん (ワッチョイ 4d9f-VJWb)
2018/05/12(土) 12:25:35.08ID:CthSiE230 厳密に言えば readonly と immutable は別
interface で表現出来るのは readonly
interface で表現出来るのは readonly
265デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 12:57:15.57ID:RvuVG0qm0 残念・・・
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);
みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);
みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。
266デフォルトの名無しさん (アウアウエー Sa13-5wbU)
2018/05/12(土) 14:45:46.09ID:UZR1Ryt2a >>265
何いってるのかわかりません
何いってるのかわかりません
267デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 14:55:22.20ID:5EDA9IkjM それに変数名長すぎ
268デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 14:55:53.42ID:5EDA9IkjM しかもbool型に見えない
269デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 17:01:44.57ID:RvuVG0qm0 なんかもうMVCに従って書き直すの不可能な気がしてきた・・・
初めから作り直すほうが早いかも・・・。
初めから作り直すほうが早いかも・・・。
270デフォルトの名無しさん (ワッチョイ 23d2-UqMB)
2018/05/12(土) 17:16:54.39ID:15xgRckc0 >>269
MVCは基本的にWebだかんね…
MVCは基本的にWebだかんね…
271デフォルトの名無しさん (スップ Sd03-Rh4P)
2018/05/12(土) 17:19:31.54ID:VhwAlNWxd 設計思想根本から変えるのに小手先の修正で済むわけないよw
272デフォルトの名無しさん (ブーイモ MM19-obfm)
2018/05/12(土) 17:32:27.30ID:XEHHkDisM 初心者が勉強のためにゲームプログラムを作るのにMVCなんてナンセンスです。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。
273デフォルトの名無しさん (ブーイモ MM19-RhzA)
2018/05/12(土) 17:33:18.63ID:oxtjRRByM まず設計からやり直さないと無理だと思うよ
274デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:06:22.88ID:RvuVG0qm0 頭の中がどぁーっとなってきました。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。
275デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:11:39.59ID:RvuVG0qm0 すんごい読みづらいコードなんだけどこのまま進めていいのかな・・・。
とりあえず力業で進めることは可能なんですけど気持ち悪い。
とりあえず力業で進めることは可能なんですけど気持ち悪い。
276デフォルトの名無しさん (ブーイモ MM19-GlfE)
2018/05/12(土) 18:12:38.37ID:5EDA9IkjM >>274
で、でたーオブジェクト指向不出来form.cs全部書込奴w
で、でたーオブジェクト指向不出来form.cs全部書込奴w
277デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
2018/05/12(土) 18:16:14.33ID:XIsYMxrj0 動くコード書ける奴の方が神だからな。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。
何なら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。
何なら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。
278デフォルトの名無しさん (ブーイモ MM19-obfm)
2018/05/12(土) 18:23:40.04ID:XEHHkDisM 自分のプログラムが汚いわかりにくいと思ったのなら、あなたはセンスがあるんだよ。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。
279デフォルトの名無しさん (ブーイモ MM19-obfm)
2018/05/12(土) 18:26:39.51ID:XEHHkDisM プログラマの能力を試すには書かせるより読ませるのがいいからね。
人のプログラム読めない奴は進歩ないから。
人のプログラム読めない奴は進歩ないから。
280デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:31:48.49ID:RvuVG0qm0 あれ、根本的なことが分かってないことが分かりました。
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
281デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:33:40.32ID:RvuVG0qm0282デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:34:30.46ID:RvuVG0qm0283デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:35:15.53ID:RvuVG0qm0 >>280
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。
284デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 18:37:29.64ID:RvuVG0qm0 >>280
間違いました。
あれ、根本的なことが分かってないことが分かりました。
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはthis.a=dataHolder.a;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
間違いました。
あれ、根本的なことが分かってないことが分かりました。
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはthis.a=dataHolder.a;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??
285デフォルトの名無しさん (アウアウウー Sa89-9tI+)
2018/05/12(土) 20:01:02.99ID:9rdAnFG4a まあなんだよ
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも
286デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 23:33:51.06ID:RvuVG0qm0287デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/12(土) 23:36:15.36ID:RvuVG0qm0 Aフォームのメンバ変数、メソッドを
BCフォームからも使用できるようするにはどうすればいいのでしょう。
Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。
BCフォームからも使用できるようするにはどうすればいいのでしょう。
Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。
288デフォルトの名無しさん (ワッチョイ cb9a-k37M)
2018/05/12(土) 23:44:08.44ID:7v9y2RSd0289デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 11:04:57.10ID:ySggkKZM0 >>288
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。
昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても
フィールド渡し
プロパティ渡し
メソッド渡し
と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。
昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても
フィールド渡し
プロパティ渡し
メソッド渡し
と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。
290デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 11:06:37.40ID:ySggkKZM0 こういうのってCやってれば常識なんですね。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。
次から初心者板に移動してみます。
でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。
次から初心者板に移動してみます。
でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。
291デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
2018/05/13(日) 13:59:35.41ID:23x2pXKw0 〇〇する機能みたいにして、重要だと思う機能ほど大きく書いて相関関係を、ドラマの登場人物の関係図みたいに描いたらなんとなくクラス図の基本が出来上がる。
292デフォルトの名無しさん (ワッチョイ cb96-k37M)
2018/05/13(日) 14:41:31.02ID:ySggkKZM0293デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
2018/05/23(水) 19:32:08.48ID:Au5e7VGg0 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
094C5
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
094C5
294デフォルトの名無しさん (ワッチョイ c1f7-Ockd)
2018/05/25(金) 17:55:34.06ID:kaJ5fQAg0 あくまでわかりやすくするために分けるのであって、クラスを分けることが目的になってしまってはいけない
余計わからん構造になる可能性があるからね
余計わからん構造になる可能性があるからね
295デフォルトの名無しさん (ワッチョイ f103-cS+N)
2018/05/25(金) 23:51:50.59ID:q1degsPf0 わかりやすくする為にわけるのではない
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ
296デフォルトの名無しさん (ワッチョイ 0181-2S6i)
2018/05/26(土) 08:31:56.50ID:Mb7u4pS+0 なんか偉そうなこと言ってる
297デフォルトの名無しさん (ラクッペ MM25-sRwd)
2018/05/26(土) 10:29:20.38ID:Qkk0DhfZM ナイーブすぎ
298デフォルトの名無しさん (ワッチョイ 918d-dk08)
2018/05/26(土) 16:16:32.23ID:nVIiMXOl0 桃とアロエのカネボウ
299デフォルトの名無しさん (JP 0Hcd-ftu6)
2018/05/28(月) 11:28:40.07ID:vRphuiRoH ゲームくんのゲームは完成したのだろうか?
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
