■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:iVvswOrb0185デフォルトの名無しさん (アウアウウー Sacf-B51h)
2018/05/05(土) 08:47:39.95ID:5nbJxYdYa 〜VS2015しか使ってないが俺はエラー起きたことないよ。原因分からないけど、何かやらかしてるんでしょ
186デフォルトの名無しさん (ワッチョイ 1e98-5GkY)
2018/05/05(土) 09:57:21.01ID:+PUGPCx60 無闇にコピペした結果を環境のバグとか
プログラム向いてないよお前
プログラム向いてないよお前
187デフォルトの名無しさん (ワッチョイ 1e96-XJxX)
2018/05/05(土) 10:00:36.87ID:CBIAOUw10 失礼しました。
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。
188デフォルトの名無しさん (ドコグロ MMc2-XUQH)
2018/05/05(土) 10:35:22.91ID:TTUQSH5zM むしろしちゃいけない作業をしてるような気がする...
189デフォルトの名無しさん (ワッチョイ 1e81-YjVT)
2018/05/05(土) 11:08:14.41ID:T9f+iK/r0 >>178
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある
190デフォルトの名無しさん (ワッチョイ 7f23-x94l)
2018/05/05(土) 11:25:44.32ID:qEM4shRT0 いきなり難しいことをやろうとするとダメやね
191デフォルトの名無しさん (ワントンキン MMfa-5GkY)
2018/05/05(土) 11:27:18.98ID:LtMyhhwZM 基礎も身につけずに一端のフリして解決しようとして、半端で折れるバカってのはよく聞く話
とりあえず何か入門書籍に頼って動くものを作れ
話はそれからだ
とりあえず何か入門書籍に頼って動くものを作れ
話はそれからだ
192デフォルトの名無しさん (ワッチョイ 1e9a-XJxX)
2018/05/05(土) 20:20:18.85ID:xedbZMvy0 >>184
情報共有する場所なんだからこういったいいかげんなこと書くのやめてほしいな
まずソースをそのまま取り込みたいのならプロジェクトに追加で何も不具合は起こらない
それでデザイナが反映されないのならDesigner.csを直接書き換え(認識できなくなるような書き換え)やっているはず
あとユーザーコントロールを内部で追加している場合は一度ビルドするとデザイナで反映される
プロジェクトでなくソリューションにソース追加しても当然何も起こらない
最初からふらっとにいけばいいのに
情報共有する場所なんだからこういったいいかげんなこと書くのやめてほしいな
まずソースをそのまま取り込みたいのならプロジェクトに追加で何も不具合は起こらない
それでデザイナが反映されないのならDesigner.csを直接書き換え(認識できなくなるような書き換え)やっているはず
あとユーザーコントロールを内部で追加している場合は一度ビルドするとデザイナで反映される
プロジェクトでなくソリューションにソース追加しても当然何も起こらない
最初からふらっとにいけばいいのに
193デフォルトの名無しさん (アウアウウー Sacf-Tk2U)
2018/05/05(土) 20:30:34.54ID:Tc8hf/iLa WinFormのデザイナは中途半端に内部実行するからしょっちゅうトラブるんだよな
コンストラクタでなんかやってる奴は特に要注意
コンストラクタでなんかやってる奴は特に要注意
194デフォルトの名無しさん (ワッチョイ cf17-jSUp)
2018/05/05(土) 22:08:57.94ID:1Zee5iE50 デザイナかどうか判断するコードを書くのは飽きた
195デフォルトの名無しさん (ワッチョイ 1e81-YjVT)
2018/05/05(土) 22:38:59.04ID:T9f+iK/r0 そんなあなたに!WPF!
196デフォルトの名無しさん (ワッチョイ 1e96-XJxX)
2018/05/05(土) 22:40:45.58ID:CBIAOUw10 フォームをコントロール含めて継承すると継承先でコントロールの編集ができなかったり云々
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。
フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。
フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。
197デフォルトの名無しさん (ワッチョイ 8f9f-80IO)
2018/05/06(日) 07:44:34.64ID:8BI4PAGy0 FormかWPFか悩んでるならWPFを推す。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。
198デフォルトの名無しさん (ワッチョイ bbb5-MrO9)
2018/05/06(日) 15:08:05.14ID:gzoDeGmX0 今後ピクセル単位でのUI作成は完全に無くなるからなぁ
199デフォルトの名無しさん (アウアウウー Sacf-Tk2U)
2018/05/06(日) 16:52:40.62ID:6XezKW2ea 多段継承してるカスタムコントロールはぶっ壊れやすい
Winアプリ作らにゃならんならWPFのがマシってのはまあそうだ
でも将来性あるとは思わんな
Winアプリ作らにゃならんならWPFのがマシってのはまあそうだ
でも将来性あるとは思わんな
200デフォルトの名無しさん (ブーイモ 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の参照を渡すってこと??
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
