X



C#, C♯, C#相談室 Part93©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 1e06-m8Mb)
垢版 |
2017/04/22(土) 08:52:00.93ID:iVvswOrb0
■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
0252デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 10:07:34.76ID:RvuVG0qm0
自分は成り行きでBの機能の一部をCに放り込んでしまったから、
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。

入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。

こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。
0255デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 11:23:13.92ID:RvuVG0qm0
MVCは初耳で今ググって勉強しました。

やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。

手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。

こういうのが学べるいい本があったらいいなぁ。
0256デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 11:32:37.31ID:RvuVG0qm0
dataHolderクラスってABCDどれからもアクセスすることになるんですが、
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?

バグの温床になるからダメ?
0257デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 11:36:18.82ID:RvuVG0qm0
マイクロソフトのホームページだとPublicにしてますね。

これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。

うーん・・・。
世の中そんなもんなのか?
0258デフォルトの名無しさん (アウアウウー Sa89-5o/y)
垢版 |
2018/05/12(土) 11:43:38.40ID:vhGL8v7ea
>>256
お好きに
結局は書きやすさと安全性のトレードオフ

ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい
0259デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 11:57:15.21ID:RvuVG0qm0
>>258
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、

可読性、コーディングの利便性、安全性

全部満たせますね。
なんて便利なんだ…。( ゚д゚)
0260デフォルトの名無しさん (アウアウウー Sa89-5o/y)
垢版 |
2018/05/12(土) 12:02:17.65ID:vhGL8v7ea
>>259
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ
0263デフォルトの名無しさん (ササクッテロラ Sp21-4FyP)
垢版 |
2018/05/12(土) 12:12:09.32ID:F4kLnVK3p
そそ、MVCやMVPってのは、オンラインサービスみたいにデータ管理と画面操作が隔離してる様なコンピュータサービスでなら適してるけど、スマホとかパソコンの中で完結した操作性重視のアプリの設計には適して無いんだよな。
0265デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 12:57:15.57ID:RvuVG0qm0
残念・・・

bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);

みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。
0272デフォルトの名無しさん (ブーイモ MM19-obfm)
垢版 |
2018/05/12(土) 17:32:27.30ID:XEHHkDisM
初心者が勉強のためにゲームプログラムを作るのにMVCなんてナンセンスです。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。
0274デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 18:06:22.88ID:RvuVG0qm0
頭の中がどぁーっとなってきました。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。
0277デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
垢版 |
2018/05/12(土) 18:16:14.33ID:XIsYMxrj0
動くコード書ける奴の方が神だからな。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。
何なら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね?
なんてやるのが一番設計の知識ぐ身につく。
0278デフォルトの名無しさん (ブーイモ MM19-obfm)
垢版 |
2018/05/12(土) 18:23:40.04ID:XEHHkDisM
自分のプログラムが汚いわかりにくいと思ったのなら、あなたはセンスがあるんだよ。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。
0280デフォルトの名無しさん (ワッチョイ 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の参照を渡すってこと??
0284デフォルトの名無しさん (ワッチョイ 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の参照を渡すってこと??
0285デフォルトの名無しさん (アウアウウー Sa89-9tI+)
垢版 |
2018/05/12(土) 20:01:02.99ID:9rdAnFG4a
まあなんだよ
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも
0287デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/12(土) 23:36:15.36ID:RvuVG0qm0
Aフォームのメンバ変数、メソッドを
BCフォームからも使用できるようするにはどうすればいいのでしょう。

Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。
0289デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/13(日) 11:04:57.10ID:ySggkKZM0
>>288
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。

昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても

フィールド渡し
プロパティ渡し
メソッド渡し

と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。
0290デフォルトの名無しさん (ワッチョイ cb96-k37M)
垢版 |
2018/05/13(日) 11:06:37.40ID:ySggkKZM0
こういうのってCやってれば常識なんですね。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。

次から初心者板に移動してみます。

でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。
0291デフォルトの名無しさん (ワッチョイ 25b5-4FyP)
垢版 |
2018/05/13(日) 13:59:35.41ID:23x2pXKw0
〇〇する機能みたいにして、重要だと思う機能ほど大きく書いて相関関係を、ドラマの登場人物の関係図みたいに描いたらなんとなくクラス図の基本が出来上がる。
0293デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
垢版 |
2018/05/23(水) 19:32:08.48ID:Au5e7VGg0
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

094C5
0295デフォルトの名無しさん (ワッチョイ f103-cS+N)
垢版 |
2018/05/25(金) 23:51:50.59ID:q1degsPf0
わかりやすくする為にわけるのではない
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ
0299デフォルトの名無しさん (JP 0Hcd-ftu6)
垢版 |
2018/05/28(月) 11:28:40.07ID:vRphuiRoH
ゲームくんのゲームは完成したのだろうか?
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに
0301デフォルトの名無しさん (ワッチョイ b1d2-Du++)
垢版 |
2018/05/29(火) 12:36:07.71ID:0Vp36Os40
C#の勉強を講習会なりでお金を払う方式でレクチャーを受けたいのですが、どういった所が良いでしょうか?
ドットインストールやプロゲートの様な既にある動画を有料で見るのではなく、
欲を言えば1対1で即座に質問できる方式が良いのですが探してみたところ見つけられず、
初心者〜中級者を対象にした評判の良い講習会の様なものがあれば教えて頂けないでしょうか
東京都の渋谷区に住んでいます
0307デフォルトの名無しさん (アウアウオー Sa63-9v30)
垢版 |
2018/05/29(火) 18:33:40.52ID:/62QaXdPa
>>301
金と時間の無駄って意見に俺も一票。

学校の勉強でもそうだけど、だいたい独習の方が効率が高いよ。
分からないところを質問できる人がいるとはかどるのは確かだと思うけど、
そんなの今はネットで代替できるし(しかもタダ)

子供の習い事みたいにモティベーション不足を金で補うっていうのはありかもしれないけど。
0314デフォルトの名無しさん (アウアウカー Sa95-9DOT)
垢版 |
2018/05/29(火) 21:30:02.17ID:+v4yesMaa
独学でやってると自分のやり方が正しいのか確認が出来ない不安があるのはわかる
とにかくプログラムを書くこと、実務を重ねるとその不安は経験値でだんだん消えていく
とにかく経験を積むしかない
0318デフォルトの名無しさん (アウアウウー Sadd-DqgS)
垢版 |
2018/05/30(水) 11:53:56.18ID:8D7UWmqma
メンター(導師)ってリアルで言ってる人を見ると笑うけど
意識高い系ですかって
メンターは技術面より精神的な面のよりどころだな
わけわからんけどこの人は正しい導いてくれるって人って思いこむ相手

c#入門にメンターがいる必要はないね
中級以上ならまだしも

入門者には導師より同志が必要かな
0326デフォルトの名無しさん (スッップ Sd9a-faVr)
垢版 |
2018/05/31(木) 18:07:05.50ID:ZDpw5PAMd
引数ありのdelicateでデリゲートをnewする段階で
関数に引数渡しておくことはできますか?

使うときは引数関係なく実行するだけにしたい

delicateじゃなくてもそういう方法があれば教えてほしいです
0329デフォルトの名無しさん (アウアウカー Sa5d-SvXf)
垢版 |
2018/05/31(木) 20:29:05.32ID:XpaqSCj3a
>>328
普通に考えたらそうなるわな
何がいいたいんやろ
0333デフォルトの名無しさん (ワッチョイ fa23-i+D0)
垢版 |
2018/06/02(土) 01:19:12.37ID:te+Rl8LG0
もうふらっとと統合しろよ
0336デフォルトの名無しさん (ワッチョイ 7ad2-OufX)
垢版 |
2018/06/05(火) 23:17:30.29ID:vNq9k7GF0
>>335
関数ポインタ
0339デフォルトの名無しさん (アウアウエー Sa22-UB1l)
垢版 |
2018/06/06(水) 13:00:14.82ID:/mNmPD5La
>>337
「〜とは何か」って哲学論争はたぶん時間の無駄w
実際の使われ方を見て何に使えるかを理解するのがいいよ

禅問答みたいに聞こえるかもしれんが、デリゲートのメリットは
デリゲート型の変数を作れること。

デリゲートの使えない従来の言語は、コードの中にdoubleのリテラルしか書けず
doubleの変数が作れないようなものだった
0343デフォルトの名無しさん (アウアウカー Sa2d-SmnY)
垢版 |
2018/06/07(木) 21:34:36.55ID:uqa5AZHUa
あーこういうの出来たら便利なのにー
って思ったら調べて使えばいいよ
使わんと頭入らないし
■ このスレッドは過去ログ倉庫に格納されています

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