C#, C♯, C#相談室 P ..
[2ch|▼Menu]
201:デフォルトの名無しさん
18/05/05 22:40:45.58 CBIAOUw10.net
フォームをコントロール含めて継承すると継承先でコントロールの編集ができなかったり云々
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。
フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。

202:デフォルトの名無しさん
18/05/06 07:44:34.64 8BI4PAGy0.net
FormかWPFか悩んでるならWPFを推す。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。

203:デフォルトの名無しさん
18/05/06 15:08:05.14 gzoDeGmX0.net
今後ピクセル単位でのUI作成は完全に無くなるからなぁ

204:デフォルトの名無しさん
18/05/06 16:52:40.62 6XezKW2ea.net
多段継承してるカスタムコントロールはぶっ壊れやすい
Winアプリ作らにゃならんならWPFのが


205:}シってのはまあそうだ でも将来性あるとは思わんな



206:デフォルトの名無しさん
18/05/06 17:34:01.02 ZPoK8KSTM.net
WPFそのものの将来性はともかくとして、その技術のエッセンスが次代に引き継がれると思うんです。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。

207:デフォルトの名無しさん
18/05/06 17:36:34.98 w10wIaHya.net
>>199
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話
俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因

208:デフォルトの名無しさん
18/05/06 17:37:23.44 6XezKW2ea.net
潰しがきくってんならなおさら独自仕様なんぞあかんやろ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ

209:デフォルトの名無しさん
18/05/06 17:39:54.31 YMV7ENjt0.net
>>202
XAML

210:デフォルトの名無しさん
18/05/06 17:41:16.14 6XezKW2ea.net
>>201
いや正確にはシステムがぶっ壊してるんじゃなく
レイアウト決定だの初期化順番だので罠にはまる確率がガンと上がるって話
コントロール1種を少々カスタマイズしたくらいじゃあんまハマらんさ

211:デフォルトの名無しさん
18/05/06 17:43:51.97 EPydt9+c0.net
GDIが使えない時点でゴミ
WPFでCADを提供してみろ

212:デフォルトの名無しさん
18/05/06 18:14:23.28 8BI4PAGy0.net
>>202
対案示してくれると検討もできるんですけど。

213:デフォルトの名無しさん
18/05/06 18:17:03.64 6XezKW2ea.net
>>206
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん

214:デフォルトの名無しさん
18/05/06 18:17:55.59 JGiuZYwWa.net
formとwpfどっちかじゃなくて、状況に応じてどっちか使えばいい
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん

215:デフォルトの名無しさん
18/05/06 18:18:35.39 gpR98zCG0.net
何でこのスレ来てるの?

216:デフォルトの名無しさん
18/05/06 18:21:30.52 gzoDeGmX0.net
xamlが単なるコードトランレート言語だったなんて知らなかったんだよ。

217:デフォルトの名無しさん
18/05/06 18:31:06.82 8BI4PAGy0.net
>>207
まさかの浅い答えでしたね。
今時、なんか開発する時は言語だけじゃなくAPIとかプラットホームとのセットじゃないの?

218:デフォルトの名無しさん
18/05/06 18:36:24.83 Yj4OtQcz0.net
最近form触る機会あったけど、WPFになれた後だとバインディングが面倒でならない
formはformでわざわざ部品探したり作る必要ないから良いんだけどね

219:デフォルトの名無しさん
18/05/06 18:49:36.56 c85H7Qr90.net
Bindingが遅すぎて使い物にならない

220:デフォルトの名無しさん
18/05/06 19:05:20.38 8BI4PAGy0.net
なんか変なイチャモン付けてる人いるけど。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。

221:デフォルトの名無しさん
18/05/06 19:06:34.14 lPSPWHr00.net
昔から居ついてるから一々突っからなくて宜しい

222:デフォルトの名無しさん
18/05/06 19:13:48.84 8BI4PAGy0.net
>>215
昔から居てもアホな書き込みすると初学者は惑わされるのよ。
自分が理解出来ない技術はみんなダメって言ってないか?
ちゃんと論理的に反論してよ。
出来ないなら駄まってろ。

223:デフォルトの名無しさん
18/05/06 19:15:40.37 JGiuZYwWa.net
formでCAD作ってる奴ぐぐると日本人でも複数いるよ

224:デフォルトの名無しさん
18/05/06 19:17:40.07 OZSh5wZJ0.net
>>214
お前


225:さんみたいな銀の弾丸求める奴ぁ先がないぞ XAMLは文字列だらけで設計の筋がいいとは到底言えない もし次があるなら全然違うもん出してくるんじゃないの



226:デフォルトの名無しさん
18/05/06 19:21:54.60 8BI4PAGy0.net
>>217
FormでできるならWPFでもできるだろう。
Formの優位性は何?

227:デフォルトの名無しさん
18/05/06 19:24:56.35 8BI4PAGy0.net
>>218
XAMLは面倒よ、たしかに。
でもね、オレは使ってないがGUIのリソースエディタがあるんじゃないか?
なくても直ぐにできるよ。

228:デフォルトの名無しさん
18/05/06 19:27:17.19 8BI4PAGy0.net
>>218
UWPもXAMLだよ。
MSは当面これでいくんじゃないの。
あんたよりMS信じる。

229:デフォルトの名無しさん
18/05/06 19:34:40.78 OZSh5wZJ0.net
XAMLの筋が悪い一例としてIDEサポートがHTMLにすら劣る点が上げられる
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ

230:デフォルトの名無しさん
18/05/06 19:44:28.98 8BI4PAGy0.net
>>222
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。

231:デフォルトの名無しさん
18/05/06 19:47:05.22 YMV7ENjt0.net
>>222
俺も落ちたことないんだけど、どんな環境で何したん?

232:デフォルトの名無しさん
18/05/06 19:59:30.59 P5UQ0avb0.net
WPFはもちろん最良ではないけど
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ

233:デフォルトの名無しさん
18/05/06 20:10:59.67 OZSh5wZJ0.net
メモリ8Gで5段くらいネストした奴編集してたらストンと落ちたぞ
vs2015だ
>>225
「現行では」比較論でまあせやな
将来性は怪しいが

234:デフォルトの名無しさん
18/05/06 20:17:33.07 YMV7ENjt0.net
>>226
ハードウェアアクセラレーションの問題ではなくて?

235:デフォルトの名無しさん
18/05/06 20:19:15.57 8BI4PAGy0.net
>>226
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。

236:デフォルトの名無しさん
18/05/06 20:22:22.92 YMV7ENjt0.net
>>228
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
URLリンク(stackoverflow.com)

237:デフォルトの名無しさん
18/05/06 20:28:51.95 8BI4PAGy0.net
>>229
他の環境はそんなに安定してるのか?
VSが特別に酷いとは思わないけど。
MSデスってなんでここにいるの?

238:デフォルトの名無しさん
18/05/06 20:30:40.96 YMV7ENjt0.net
>>230
俺がいつMSをデスった?いつ他の環境と比較した?
ID:OZSh5wZJ0と間違えなさんな

239:デフォルトの名無しさん
18/05/06 20:37:41.43 8BI4PAGy0.net
>>231
Winアプリはオワコンって言ったろ。
それより、CAD作ってみろ、って恫喝的に書いたろ。
あのフォローをしてくれ。論理的に。

240:デフォルトの名無しさん
18/05/06 20:39:01.49 8BI4PAGy0.net
>>213
ごめん。
人違いだった。

241:デフォルトの名無しさん
18/05/06 20:40:12.87 8BI4PAGy0.net
>>233
たびたび訂正ですがアンカ間違えた。
すまん。

242:デフォルトの名無しさん
18/05/06 20:46:08.35 OZSh5wZJ0.net
わかりやすく発狂してんなー
初学者どうたら言うんならもっと普及してるもん押すべきじゃあないの?
言っとくけどC#自体は他でも使われてるからなUnityとか
>>229
毎度再現するんでもないからなー
Formでは一回も落ちたことないからXAML関係が比較的不安定なのはそうじゃないの

243:デフォルトの名無しさん
18/05/06 20:58:22.97 8BI4PAGy0.net
>>235
見っともないぞ。
昔からいる古狸かも知れないが、もっとちゃんとしろ。
初学者惑わす書き込みを堂々とするのはやめて、自分の考え披露するのは構わないけど。

244:デフォルトの名無しさん
18/05/06 21:16:41.42 YMV7ENjt0.net
>>232
だから俺は違うってばwww

245:デフォルトの名無しさん
18/05/06 21:31:09.89 JjviwauC0.net
アンカさえまともに書けないやつがコード書けるのか?

246:デフォルトの名無しさん
18/05/06 21:39:39.84 8BI4PAGy0.net
>>237
ごめん。
ちょっと酔っ払って熱くなった。
もうここらで寝ます。
>>238
ご心配いただきありがとうございます。

247:デフォルトの名無しさん
18/05/07 11:50:51.85 zM6nOBFcM.net
わたし錯乱某

248:デフォルトの名無しさん
18/05/08 02:53:46.31 EHD0XpOQ0.net
わい、コンソールアプリしか作ってない

249:デフォルトの名無しさん
18/05/08 03:04:56.28 wFWfdcvC0.net
>>241
.NET Core Global Toolsおもしろいよね

250:デフォルトの名無しさん
18/05/11 22:56:53.52 oqUyZvi20.net
フォームアプリケーションで
A.初期設定画面
表示する円の大きさ、数、表示座標の範囲などの初期値を設定
B.ゲーム画面
初期設定画面からAの初期値を取得し、メンバ変数に代入して
円を表示する
円を消去する
円の当たり判定をする
などの3つぐらいのメソッドで使用しています。
Bのコードが長くなって200行ぐらいになると、
メンバ変数をどこで使ってるのか全部見なければいけないのは
可読性が悪いのかなと思うようになってきました。
3つのメソッドそれぞれのグループ変数として
それぞれ3つのメソッド内でAの初期値を見に行くコーディングをしたほうが良いのでしょうか?
メンバ変数の方が冗長性はないけど可読性が低くて、
メソッドないのグループ変数にしたほうが冗長性が高いが可読性も高い気がします。
独学でコーディングしているので、お仕事でプログラミングされている方のご意見を伺いたいです。

251:デフォルトの名無しさん
18/05/11 23:05:04.79 KxM4SNOx0.net
>>243
Aが入出力と, モデルのデータ保持という3役を担っているのが良くない。
出力が本業なので可能ならばそれに特化するが, 差し当たってはデータ保持を分離して別クラス(モデル)に切り出す

252:デフォルトの名無しさん
18/05/12 08:19:23.20 RvuVG0qm0.net
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行近くになっているのが可読性低下の原因かと思います。

253:デフォルトの名無しさん
18/05/12 08:19:38.98 RvuVG0qm0.net
Bの別のクラスを作って分離させたいんだけどBからAのインスタンス生成しているので、
BAの画面処理に基づいた1234はすべてBに入れることになってるんですよね。
これって画面遷移が良くないってことなのかなぁ?
一般的に1234の処理を一つのフォームクラスに押し込んでクラスメンバ変数10個程度、
400行のコードって可読性の観点から許容されるものなんでしょうか?
チームでプログラミングされているプロの方の意見をお伺いできればと思います。
(長文本当に申し訳ありません)

254:デフォルトの名無しさん
18/05/12 08:45:11.14 KCIDKf2Q0.net
人の話聞いてないねw
じゃあもう好きにしたらいいと思うよ

255:デフォルトの名無しさん
18/05/12 09:11:24.66 RvuVG0qm0.net
>>247
私の説明か理解が悪いのでしょうか?
Aは100行未満のコード245のコードの連続なので簡単に読めます。
Bが読みづらいのが問題なので、Aの機能を分離しても解決


256:ノはならないような。 BがAが取得したデータ保持とゲーム内でのデータ処理の二つを担っているのがまずいとのご指摘であれば、 それはそうかと思いますが、データ保持と処理が画面と密接に関係しているので分離し難いというか・・・。 コード全部見せないで質問すること自体に無理があるのかもしれませんね。 すいません。



257:デフォルトの名無しさん
18/05/12 09:18:34.84 RvuVG0qm0.net
たぶん端的にこう質問すればよかったのかと思います。
フォームを生成しているクラスのコードが400行、メンバ変数が10個、メソッドが8個、で、
メンバ変数はそれぞれのメソッドで3個ぐらい引用しています。
こういうコードってチームで作業してるプロから見て許容できる範囲でしょうか?
処理が多少冗長になってもメンバ変数を少なくして、メソッド内でグローバル変数として定義するべきでしょうか?

258:デフォルトの名無しさん
18/05/12 09:19:07.30 vhGL8v7ea.net
>>248
Aを入出力専門のAViewとデータ保持専門のDataHolderに分離
Bをゲーム画面描画専門のBViewと実際の内部処理を行うGameModel, 各種書き出しを行うWriterに分離
Windowのインスタンスの内部で色々な処理を行うのがそもそも間違ってる
描画と変更の通知以外何もさせるな

259:デフォルトの名無しさん
18/05/12 10:01:27.82 RvuVG0qm0.net
>>250
ありがとうございます。
理解できました。
フォーム生成するクラスはフォームの描画、変更に特化
A 初期値入力フォームを生成するクラス
B データを保持するクラス
C ゲーム画面表示クラス
D ゲームのルールに基づいてBを更新するクラス
分かりやすい。
これがオブジェクト指向ってやつか・・・。

260:デフォルトの名無しさん
18/05/12 10:07:34.76 RvuVG0qm0.net
自分は成り行きでBの機能の一部をCに放り込んでしまったから、
Bを処理するDも必要に迫られてCに入れざるを得なくなってたんですね。
入門書にあったサンプルプログラムはコード数が少なかったから、
BをCに入れてるものが結構あったので無意識にこんなもんだと思ってました。
こういうのって本では学びづらいですね。
勉強になりました。
ありがとうございます。

261:デフォルトの名無しさん
18/05/12 11:04:14.67 PbE4ojLD0.net
>>251
それはOOPではなくMVCな。一応。

262:デフォルトの名無しさん
18/05/12 11:05:17.79 vhGL8v7ea.net
まぁGUIアプリケーションでのOOPの具体的なアーキテクチャだから

263:デフォルトの名無しさん
18/05/12 11:23:13.92 RvuVG0qm0.net
MVCは初耳で今ググって勉強しました。
やはり自分のコードは人と共有できるレベルではなかったですね。
MVCの設計で修正してみます。
手続き型言語しかやってないので、
手続きで処理していって
「なんども同じ手続き出てくるな。」
と思ったらクラスにして分離する思考になってたんですけど、
それじゃだめですね。
こういうのが学べるいい本があったらいいなぁ。

264:デフォルトの名無しさん
18/05/12 11:32:37.31 RvuVG0qm0.net
dataHolderクラスってABCDどれからもアクセスすることになるんですが、
パブリックにして、どこからでも読み書きできるようにしていいんでしょうか?
バグの温床になるからダメ?

265:デフォルトの名無しさん
18/05/12 11:36:18.82 RvuVG0qm0.net
マイクロソフトのホームページだとPublicにしてますね。
これだとどこからでもすべてのデータにアクセスできるから便利だし可読性もいいけど、
どこかでうかつにdataHolderの変数に変な値を入れると、
どこがバグになっているのか全コード読まなければいけないですね。
うーん・・・。
世の中そんなもんなのか?

266:デフォルトの名無しさん
18/05/12 11:43:38.40 vhGL8v7ea.net
>>256
お好きに
結局は書きやすさと安全性のトレードオフ
ガッチガチに書くならgetterだけのImmutableオブジェクトを表すインターフェイスとそれを実装する具体クラスに分離してViewにはインターフェイスだけ教えるとか(あまりやらない)
作る人数とか規模によってどの程度強制するか変わってくるから程よくやるのが重要, 一貫性は重要だが徹底しすぎるとしんどい

267:デフォルトの名無しさん
18/05/12 11:57:15.21 RvuVG0qm0.net
>>258
immutableなんてものがあるんですね。
ごく一部の変数以外はimmutableで事足りるから、immutable設定にします。
publicでdataHolderクラス作ってメンバ変数はすべてimmutableにすれば、
可読性、コーディングの利便性、安全性
全部満たせますね。
なんて便利なんだ…。( ゚д゚)

268:デフォルトの名無しさん
18/05/12 12:02:17.65 vhGL8v7ea.net
>>259
残念ながらC#では上手くImmutableに出来ない(出来るかもしれないが最近やってないので詳しい人教えて)
TypeScriptとかなら既存の型にReadonlyを再帰的に付けた型が簡単に作れるんだけどなぁ

269:デフォルトの名無しさん
18/05/12 12:04:38.53 F4kLnVK3p.net
MVCって、VとCの境界が曖昧になりがちだよな。
ってか、VとCを分ける様な事するからUIが使い辛い物になるんだよな。

270:デフォルトの名無しさん
18/05/12 12:06:20.36 vhGL8v7ea.net
>>261
せやな
MVVMとかあるしな

271:デフォルトの名無しさん
18/05/12 12:12:09.32 F4kLnVK3p.net
そそ、MVCやMVPってのは、オンラインサービスみたいにデータ管理と画面操作が隔離してる様なコンピュータサービスでなら適してるけど、スマホとかパソコンの中で完結した操作性重視のアプリの設計には適して無いんだよな。

272:デフォルトの名無しさん
18/05/12 12:25:35.08 CthSiE230.net
厳密に言えば readonly と immutable は別
interface で表現出来るのは readonly

273:デフォルトの名無しさん
18/05/12 12:57:15.57 RvuVG0qm0.net
残念・・・
bool resultOfGetTimeLimit = int.TryParse(this.timeLimit.Text, out constant.timeLimit);
みたいに定数をフォームから取得できればありがたいんだけどなぁ。
そういう需要ってあんまりないんだろうか。

274:デフォルトの名無しさん
18/05/12 14:45:46.09 UZR1Ryt2a.net
>>265
何いってるのかわかりません

275:デフォルトの名無しさん
18/05/12 14:55:22.20 5EDA9IkjM.net
それに変数名長すぎ

276:デフォルトの名無しさん
18/05/12 14:55:53.42 5EDA9IkjM.net
しかもbool型に見えない

277:デフォルトの名無しさん
18/05/12 17:01:44.57 RvuVG0qm0.net
なんかもうMVCに従って書き直すの不可能な気がしてきた・・・
初めから作り直すほうが早いかも・・・。

278:デフォルトの名無しさん
18/05/12 17:16:54.39 15xgRckc0.net
>>269
MVCは基本的にWebだかんね…

279:デフォルトの名無しさん
18/05/12 17:19:31.54 VhwAlNWxd.net
設計思想根本から変えるのに小手先の修正で済むわけないよw

280:デフォルトの名無しさん
18/05/12 17:32:27.30 XEHHkDisM.net
初心者が勉強のためにゲームプログラムを作るのにMVCなんてナンセンスです。
先ず、何でもいいから動くものを作る。プログラムスタイルはそれからいろんなな本で学べばいい。

281:デフォルトの名無しさん
18/05/12 17:33:18.63 oxtjRRByM.net
まず設計からやり直さないと無理だと思うよ

282:デフォルトの名無しさん
18/05/12 18:06:22.88 RvuVG0qm0.net
頭の中がどぁーっとなってきました。
とりあえずゲーム本体は完成したんですが、一部改変しようとしたらかなりの機能がすべてゲーム画面フォームにくっついてるので読みづらいことこの上ないなと。
データ部分を別構造にしたかったんですが、ほぼ句見直しに近い改変であたまがわやになってます。

283:デフォルトの名無しさん
18/05/12 18:11:39.59 RvuVG0qm0.net
すんごい読みづらいコードなんだけどこのまま進めていいのかな・・・。
とりあえず力業で進めることは可能なんですけど気持ち悪い。

284:デフォルトの名無しさん
18/05/12 18:12:38.37 5EDA9IkjM.net
>>274
で、でたーオブジェクト指向不出来form.cs全部書込奴w

285:デフォルトの名無しさん
18/05/12 18:16:14.33 XIsYMxrj0.net
動くコード書ける奴の方が神だからな。
設計どうのこうのなんて、動くコード書ける様になってから理解すれば良い。



286:スなら作った後で反省的を挙げながらここはこう言う構造の方が良かったんじゃね? なんてやるのが一番設計の知識ぐ身につく。



287:デフォルトの名無しさん
18/05/12 18:23:40.04 XEHHkDisM.net
自分のプログラムが汚いわかりにくいと思ったのなら、あなたはセンスがあるんだよ。
汚いプログラム書いて平気なプロもいるからね。
後はいろんなサンプルプログラムを検索して読んだらいい。あっ、これがいいとか気付きがあると思う。

288:デフォルトの名無しさん
18/05/12 18:26:39.51 XEHHkDisM.net
プログラマの能力を試すには書かせるより読ませるのがいいからね。
人のプログラム読めない奴は進歩ないから。

289:デフォルトの名無しさん
18/05/12 18:31:48.49 RvuVG0qm0.net
あれ、根本的なことが分かってないことが分かりました。
B DataHolder
C ゲーム
D スコア記録
CからBのインスタンスを生成
DataHolder dataHolder1=new DataHolder();
すればCのpublic変数aにアクセスするときはdataHolder.a=hoge;とかでいいけど、
DからBのdataHolder1の変数aにアクセスってできるんですか?
CからDにdataHolder1の参照を渡すってこと??

290:デフォルトの名無しさん
18/05/12 18:33:40.32 RvuVG0qm0.net
>>276
全部ではないけどほぼご指摘あってます・・・。
本に書いてある小さなプログラムはほとんどform.csに放り込んでたので、そんなものかと思ってた。

291:デフォルトの名無しさん
18/05/12 18:34:30.46 RvuVG0qm0.net
>>277
ありがとうございます。
今ようやっと設計の大事さを学習しました。
レベル0から0.01ぐらいには成長できた気がします。

292:デフォルトの名無しさん
18/05/12 18:35:15.53 RvuVG0qm0.net
>>280
そもそもこれが分かってなかったから一つのフォーム画面にいろいろ機能を盛り込みすぎたんだと。

293:デフォルトの名無しさん
18/05/12 18:37:29.64 RvuVG0qm0.net
>>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の参照を渡すってこと??

294:デフォルトの名無しさん
18/05/12 20:01:02.99 9rdAnFG4a.net
まあなんだよ
今の君に必要なのは鉛筆と紙だ
なんたらチャートのお作法なんぞ知らんでいいから、まずは機能を書き出して丸で囲め
それからどの機能が何処から必要になるかを線引っ張って繋げ
めちゃくちゃ線がごちゃごちゃするだろう?
それをなるべく少ない線で済むように書き直すんだ何回でも

295:デフォルトの名無しさん
18/05/12 23:33:51.06 RvuVG0qm0.net
>>285
自分で書いててこんがらがってきますね。
でもまずやってみます。

296:デフォルトの名無しさん
18/05/12 23:36:15.36 RvuVG0qm0.net
Aフォームのメンバ変数、メソッドを
BCフォームからも使用できるようするにはどうすればいいのでしょう。
Bだけで使用するならB内でAのインスタンス生成→ShowでAフォームを表示させればいいと思うのですが、
Cフォームでも使用するとなると、Cフォームで新たにAのインスタンスを生成するわけにもいかないですよね。

297:デフォルトの名無しさん
18/05/12 23:44:08.44 7v9y2RSd0.net
>>287
ググるなりして調べた?そろそろ初心者スレでやって
インスタンスを渡せばいいだけなのに

298:デフォルトの名無しさん
18/05/13 11:04:57.10 ySggkKZM0.net
>>288
すいません。
ググってもよくわからなかったので質問したのですが安易に人に頼りすぎてましたね。
昨夜からわからないところを実際にコードで打ち込んでみて実験重ねて理解できました。
インスタンスの参照渡すって言っても
フィールド渡し
プロパティ渡し
メソッド渡し
と色々方法あるんですね。インスタンスの参照を渡す方法が分かってなかったから一つのクラスに一杯盛り込むことになってたんだと理解できました。

299:デフォルトの名無しさん
18/05/13 11:06:37.40 ySggkKZM0.net
こういうのってCやってれば常識なんですね。
どこからC#でどこまでCの質問か分からずこちらで何でも聞いていました。
次から初心者板に移動してみます。
でも、みなさんのおかげでだいぶいろいろなことを学べました。
ありがとうございます。

300:デフォルトの名無しさん
18/05/13 13:59:35.41 23x2pXKw0.net
〇〇する機能みたいにして、重要だと思う機能ほど大きく書いて相関関係を、ドラマの登場人物の関係図みたいに描いたらなんとなくクラス図の基本が出来上がる。

301:デフォルトの名無しさん
18/05/13 14:41:31.02 ySggkKZM0.net
>>291
ありがとうございます。
クラス図についても勉強してみます。

302:デフォルトの名無しさん
18/05/22 22:37:35.74 gaTn3ZGLJ
Genericクラスのメソッドで
型が重複する場合の仕様について質問です
class Dic<T> : System.Collections.Generic.Dictionary<int,T>
{
    public bool Contains(int key)
    {
        return base.ContainsKey(key);
    }
    public bool Contains(T val)
    {
        return base.ContainsValue(val);
    }
}
ちょっと必要にせまられて、こんな雰囲気のクラスを作りました
基本的に、重複する型では利用しない予定ですが
気になってテストコードを作ってデバッグしたところ何の警告も出なく実行できて
「base.ContainsKey(key);」の結果が返ってきました
これは言語仕様でしょうか?
それともVisualStudioや.Net Framework仕様でしょうか?
どなたか詳しい方、おしえてください
※ 環境は Visual Studio 2017 Community Framework 4.6.1

303:デフォルトの名無しさん
18/05/23 19:32:08.48 Au5e7VGg0.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
094C5

304:デフォルトの名無しさん
18/05/25 17:55:34.06 kaJ5fQAg0.net
あくまでわかりやすくするために分けるのであって、クラスを分けることが目的になってしまってはいけない
余計わからん構造になる可能性があるからね

305:デフォルトの名無しさん
18/05/25 23:51:50.59 q1degsPf0.net
わかりやすくする為にわけるのではない
問題が適切に表現される様に自ずとにわかれるのだ
それが本質的にわかりにくい問題であるならば
わかれた結果わかりにくいのは当然の帰結である
己の能力をわかるまで高めるしかあるまい
わかめ

306:デフォルトの名無しさん
18/05/26 08:31:56.50 Mb7u4pS+0.net
なんか偉そうなこと言ってる

307:デフォルトの名無しさん
18/05/26 10:29:20.38 Qkk0DhfZM.net
ナイーブすぎ

308:デフォルトの名無しさん
18/05/26 16:16:32.23 nVIiMXOl0.net
桃とアロエのカネボウ

309:デフォルトの名無しさん
18/05/28 11:28:40.07 vRphuiRoH.net
ゲームくんのゲームは完成したのだろうか?
そもそもGameManagerクラスみたいなゲームを管理するクラス作ってないのが不思議
ゲーム管理クラス通して設定画面開いたり設定値を取得すればいいのに

310:デフォルトの名無しさん
18/05/28 18:36:44.90 rzi0Cqlc0.net
どんだけ連打してんだよ

311:デフォルトの名無しさん
18/05/29 12:36:07.71 0Vp36Os40.net
C#の勉強を講習会なりでお金を払う方式でレクチャーを受けたいのですが、どういった所が良いでしょうか?
ドットインストールやプロゲートの様な既にある動画を有料で見るのではなく、
欲を言えば1対1で即座に質問できる方式が良いのですが探してみたところ見つけられず、
初心者〜中級者を対象にした評判の良い講習会の様なものがあれば教えて頂けないでしょうか
東京都の渋谷区に住んでいます

312:デフォルトの名無しさん
18/05/29 13:37:15.19 dUPfr/v4M.net
もったいないね
マンツーマンで一時間5千円〜1万はらって12〜36時間でC#を勉強するくらいなら
入門書を3冊ぐらい買って1週間で何度も読めばいいのに

313:デフォルトの名無しさん
18/05/29 13:45:33.86 iBcg+dk20.net
しかし新しいC#の作法にのっとった良い入門書なんてあるかね?

314:デフォルトの名無しさん
18/05/29 13:47:56.92 dUPfr/v4M.net
新しい作法にのっとった講師のほうが少ないと思うよ

315:デフォルトの名無しさん
18/05/29 17:24:32.50 0Rufp4wm0.net
>>302
趣味目的なら金


316:]っているバカだし就職目的なら手に負えないバカ そんなことで身につかないからパソコン教室にでも通ってろ



317:デフォルトの名無しさん
18/05/29 18:15:54.45 5CF0lkGw0.net
パソコン教室じゃ、最高でエクセルの使い方くらいしか教えてくれねーだろ。

318:デフォルトの名無しさん
18/05/29 18:33:40.52 /62QaXdPa.net
>>302
金と時間の無駄って意見に俺も一票。
学校の勉強でもそうだけど、だいたい独習の方が効率が高いよ。
分からないところを質問できる人がいるとはかどるのは確かだと思うけど、
そんなの今はネットで代替できるし(しかもタダ)
子供の習い事みたいにモティベーション不足を金で補うっていうのはありかもしれないけど。

319:デフォルトの名無しさん
18/05/29 18:38:51.88 5CF0lkGw0.net
何とか教室や何とかスクールって、出逢いを求めて通うものだろ?

320:デフォルトの名無しさん
18/05/29 18:39:33.21 iBcg+dk20.net
云うてもプログラムって何すんの状態だと独学とか無理やん
まあ講習受けて出来るようになるかったら確率低いが

321:デフォルトの名無しさん
18/05/29 18:51:29.09 b3SRNDoC0.net
>プログラムって何すんの状態だと独学とか無理やん
そんな人はプログラムを触ることはないので問題なし

322:デフォルトの名無しさん
18/05/29 19:02:37.30 bwgc0PeYa.net
C#プログラマの求人いきゃいい
マンツーマンでみっちり教えてくれてしかも金ももらえるぞ

323:デフォルトの名無しさん
18/05/29 21:20:40.23 Zh8oS8xcM.net
>>303
>>308
でもさ、メンターがほしい気持ちは解るよ。独学で始めて今でこそイメージしたアプリは大体作れるようになったけど。

324:デフォルトの名無しさん
18/05/29 21:22:39.57 tOEtldFh0.net
教えてくれる人がいなくてもできるぐらいのやる気は持ってないと
教えてくれる人がいてもできない気がする

325:デフォルトの名無しさん
18/05/29 21:30:02.17 +v4yesMaa.net
独学でやってると自分のやり方が正しいのか確認が出来ない不安があるのはわかる
とにかくプログラムを書くこと、実務を重ねるとその不安は経験値でだんだん消えていく
とにかく経験を積むしかない

326:デフォルトの名無しさん
18/05/29 21:34:05.00 T0OOxyUA0.net
>>314
スレ違いになるけどモチベーション保つのが一番大事だからな
わからなくなるとやる気無くすから誰かに教えてもらいたい、って気持ちはわかるが

327:デフォルトの名無しさん
18/05/30 01:10:37.65 eBpQDrsU0.net
メンターってか、語れる仲間がほしい・・
だが人付き合いはめんどくせーw

328:デフォルトの名無しさん
18/05/30 01:15:01.88 9LsQ0F9t0.net
だから皆ここへ集うのですね

329:デフォルトの名無しさん
18/05/30 11:53:56.18 8D7UWmqma.net
メンター(導師)ってリアルで言ってる人を見ると笑うけど
意識高い系ですかって
メンターは技術面より精神的な面のよりどころだな
わけわからんけどこの人は正しい導いてくれるって人って思いこむ相手
c#入門にメンターがいる必要はないね
中級以上ならまだしも
入門者には導師より同志が必要かな

330:デフォルトの名無しさん
18/05/30 12:12:53.49 qVo0G4AWa.net
メンターなんて初めて聞いた
グルなら知ってる
jai guru deva om

331:デフォルトの名無しさん
18/05/30 12:16:35.68 4fnC318RM.net
>>319
とりあえず中途半端な改行やめたら?

332:デフォルトの名無しさん
18/05/30 12:53:27.56 2+ZWaFznd.net
メンター初耳って…
そりゃ昔はあまり使わなかったが今の20代なら大学で大方耳にしたことあるんじゃない?

333:デフォルトの名無しさん
18/05/30 13:06:00.57 tkaPgK/fa.net
ゲームの初心者指導機能以外で聞いたことない

334:デフォルトの名無しさん
18/05/30 14:44:19.09 zGXcDYuB0.net
ちょまど神に帰依するべきです

335:デフォルトの名無しさん
18/05/30 15:57:46.68 OvgslO8CM.net
CodeMentorっていう英語のメールニュース取ってるんだが?

336:デフォルトの名無しさん
18/05/30 17


337::39:32.49 ID:zRdb0GuK0.net



338:デフォルトの名無しさん
18/05/31 18:07:05.50 ZDpw5PAMd.net
引数ありのdelicateでデリゲートをnewする段階で
関数に引数渡しておくことはできますか?
使うときは引数関係なく実行するだけにしたい
delicateじゃなくてもそういう方法があれば教えてほしいです

339:デフォルトの名無しさん
18/05/31 18:49:53.75 YepGdlhS0.net
ない

340:デフォルトの名無しさん
18/05/31 19:21:37.82 mNqG/VKAa.net
>>327
たとえばこれを、
Action<string> a = Console.Write;
こうするだけと違うの?
Action a = () => Console.Write("Hage");

341:デフォルトの名無しさん
18/05/31 20:29:05.32 XpaqSCj3a.net
>>329
普通に考えたらそうなるわな
何がいいたいんやろ

342:デフォルトの名無しさん
18/05/31 21:18:37.12 ZDpw5PAMd.net
>>329
わかりづらくてすみません
Actionですね
これでちょっとやってみます
ありがとうございます

343:デフォルトの名無しさん
18/06/01 00:56:14.18 v9HhHj/a0.net
もしかして delegate? > delicate

344:デフォルトの名無しさん
18/06/01 01:50:30.82 Kjs/aFNB0.net
痒くなってきた

345:デフォルトの名無しさん
18/06/02 01:19:12.37 te+Rl8LG0.net
もうふらっとと統合しろよ

346:デフォルトの名無しさん
18/06/02 14:30:29.50 sz40x79U0.net
隔離用のスレを本スレに統合って斬新だな

347:デフォルトの名無しさん
18/06/05 14:10:31.00 kDP+/j8RM.net
デリケートって結局なんねことなんや

348:デフォルトの名無しさん
18/06/05 23:17:30.29 vNq9k7GF0.net
>>336
関数ポインタ

349:デフォルトの名無しさん
18/06/06 11:05:26.21 kgKhbEIB0.net
わかるように説明しろや!

350:デフォルトの名無しさん
18/06/06 11:13:20.04 Glbjy1Oa0.net
赤ん坊が庖丁持ったからと言って何かを生み出せるわけでは無し

351:デフォルトの名無しさん
18/06/06 13:00:14.82 /mNmPD5La.net
>>338
「〜とは何か」って哲学論争はたぶん時間の無駄w
実際の使われ方を見て何に使えるかを理解するのがいいよ
禅問答みたいに聞こえるかもしれんが、デリゲートのメリットは
デリゲート型の変数を作れること。
デリゲートの使えない従来の言語は、コードの中にdoubleのリテラルしか書けず
doubleの変数が作れないようなものだった

352:デフォルトの名無しさん
18/06/06 22:58:53.30 x4kBoo940.net
>>331です
Actionでできました!ありがとうございます。
クロージャー(?)っていうんですかね?
関数の外の値を引数で渡さずに関数内で使うやり方が知りたかったんです。

353:デフォルトの名無しさん
18/06/07 21:28:18.26 HziEaPXa0.net
デリゲート型の変数?????
デリゲート型にすると何かいいことあるのか?
デリゲート型にすると何がいいんだ??????何が使えるんだ?????

354:デフォルトの名無しさん
18/06/07 21:34:22.85 9x16GWRr0.net
>>342
ここ読め
URLリンク(ufcpp.net)

355:デフォルトの名無しさん
18/06/07 21:34:36.55 uqa5AZHUa.net
あーこういうの出来たら便利なのにー
って思ったら調べて使えばいいよ
使わんと頭入らないし

356:デフォルトの名無しさん
18/06/07 21:41:39.12 muNvrUxm0.net
デリゲート、デリゲートって、おまえら
青空球児・好児かよ。

357:デフォルトの名無しさん
18/06/07 23:38:02.20 p05PC41Ra.net
>>342
そうじゃなくて、上に書いたように、もしdoubleのリテラルしかコード中に書けなくて
doubleの変数が使えなかったらどう困るか考えて

358:デフォルトの名無しさん
18/06/07 23:51:09.11 HziEaPXa0.net
図にしてくれ

359:デフォルトの名無しさん
18/06/08 00:56:57.47 057UgUqy0.net
数値を格納する変数は int 型
文字を格納する変数は string 型
メソッドを格納する変数が デリゲート型

360:デフォルトの名無しさん
18/06/08 01:01:01.34 7BdVtDm70.net
なんで
メソッドを
格納する
必要が
あるんだよ


361:デフォルトの名無しさん
18/06/08 01:20:20.47 vel+6


362:yPba.net



363:デフォルトの名無しさん
18/06/08 07:41:09.77 V2PqzfzLd.net
>>349
自分の場合はある関数にある処理を追加したい場合とか
ある処理は呼び出しもとによって変わったり

364:デフォルトの名無しさん
18/06/08 07:54:30.62 VEbWNRWu0.net
>>351
ピンとこない
処理を追加したいならメソッド自体に書くか、overloadとかを考えちゃう
呼び出し元で処理変えるなら引数で、みたいな

365:デフォルトの名無しさん
18/06/08 07:59:48.51 FRxZCKgGa.net
メソッドを引数にして渡してあげられると、実行する側は何をするか気にしないでいいじゃない

366:デフォルトの名無しさん
18/06/08 08:15:18.51 H4l6t16fM.net
なぜデリゲートがあるか?
君も大人になったらわかるよ。
ママ、なんでボクはおチンチン付いてるの?
この疑問、時間が解決したろう。

367:デフォルトの名無しさん
18/06/08 08:30:05.85 V2PqzfzLd.net
>>352
今までの処理は極力変えたくない
引数にAction渡して関数はそれを実行
引数のActionはデフォルトにnullをいれておく
nullだったら処理しないようにすれば呼び出し元は必ずしも変更する必要がなくなる
なんでこうするかってテストするのがめんどいからとか色々

368:デフォルトの名無しさん
18/06/08 10:53:38.20 p6dJfT33M.net
>>355
さっぱりわからない
処理変えたくないメソッド実行
 ↓
その結果次第で別のメソッド実行
何故これで済まないの?

369:デフォルトの名無しさん
18/06/08 11:07:03.52 jzbZ53uGa.net
それでも済むよ
例えば繰り返し処理
forなくても書けるだろ。だからforなんて要らないって言ってるようなもん
なくてもプログラミングできるが、あれば楽できる

370:デフォルトの名無しさん
18/06/08 11:49:27.44 SrLrQXUUa.net
済まないw
>>356-357は-π/2〜π/2の範囲の実数の数だけ、それに対応する
sinの値を返すメソッドを用意すれば汎用的なsin関数なんかなくて済むと言ってるのと同じ。
だから、どうしてdoubleの変数が必要なのかと。
っていうかこの質問者、本当は分かってて質問してる変な奴だろうね8割方w
たぶん2chの他の板によくいる、サヨクを演じて自作自演やってる頭のおかしいネトウヨと似たようなメンタルの持主なんだろうと想像

371:デフォルトの名無しさん
18/06/08 13:02:11.32 V2PqzfzLd.net
>>356
voidだったら"その結果"ってどう受けとる?

372:デフォルトの名無しさん
18/06/08 13:04:11.27 7BdVtDm70.net
図にしろ・・・・・・・・・ッッツ!!!

373:デフォルトの名無しさん
18/06/08 13:14:18.16 0qxXZgjd0.net
アウアウアーの見本市

374:デフォルトの名無しさん
18/06/08 19:39:57.11 tyJ42miy0.net
なんか揚げ足取りしようとして引っ込みつかなくなってる感

375:デフォルトの名無しさん
18/06/08 19:42:51.67 sQqhvtlW0.net
URLリンク(ufcpp.net)

376:デフォルトの名無しさん
18/06/08 20:48:10.00 7BdVtDm70.net
つまりメソッドにラムダ式を渡して処理した結果を使ってメソッドの処理をさせるのか?

377:デフォルトの名無しさん
18/06/08 20:53:34.63 KYYD9BLCa.net
ごめん。ちょっと何言ってるかわかんない

378:デフォルトの名無しさん
18/06/08 21:00:06.62 E4qbFGXm0.net
結局デリゲートの非同期処理BeginInvokeを使用するってのが
従来大きな役割だったんじゃない?
でも今Taskクラスできたから必要なくなった

379:デフォルトの名無しさん
18/06/08 21:19:27.49 txACZHnFp.net
つまりクラス間通信。

380:デフォルトの名無しさん
18/06/09 12:11:29.33 VOfp/P7BM.net
デリゲート(委譲)って名前が悪いのかな
メソッドを他に渡しておいて適宜実行してもらうから委譲ともいえるけどそれは機能の一面しか表してない
MVPの人も過去にデリゲートいらねえって言ってたけど理解力が足りてない
c#は結構


381:「ろんなものがオブジェクトだけどメソッドはオブジェクトじゃない デリゲートを使えばメソッドをオブジェクト(変数)みたいな感じで扱える 普通の変数とは違って+=で複数のデリゲートをいれることができるのが特徴的 コールバックとして使えるしeventはデリゲートをもとに作られてるので基本的な使用範囲は広い



382:デフォルトの名無しさん
18/06/09 12:44:45.38 DBY1R4Jva.net
>>368
真面目な話、そういう衒学趣味の文系学生みたいな
文章が一番人を混乱させる。
「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」って何やねんw
関数ポインタが分かればデリゲートがどんなものかはその類推でだいたいイメージできる。
機械語をやった経験があれば、関数ポインタなんか、なんだこんなのただのcall命令の
アドレッシングモードのことかってすぐわかる
でも重要なのは、「デリゲートとは何か」なんか分からなくてもデリゲートは使えるってこと。
「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。

383:デフォルトの名無しさん
18/06/09 12:58:26.33 54mp5fzVM.net
そう。ホビープログラマならね

384:デフォルトの名無しさん
18/06/09 13:02:40.19 Cz/ni8by0.net
ホビーじゃないプログラマ「c#は結構いろんなものがオブジェクトだけどメソッドはオブジェクトじゃない 」

385:デフォルトの名無しさん
18/06/09 13:05:05.70 oQlrsJoz0.net
それは無能プログラマ

386:デフォルトの名無しさん
18/06/09 13:31:49.04 kvLDmgw/0.net
>>371
この文何か変か?
メソッドはobject型から派生したクラスではないっていう当たり前のことを言ってるだけだろ

387:デフォルトの名無しさん
18/06/09 13:40:09.88 VOfp/P7BM.net
>>369
他の言語ではメソッドもオブジェクトとして扱えるものもある
c#はメソッドはオブジェクトじゃない
その類推が間違ってるからダメなんだけどなあ…
デリゲートは関数ポインタじゃない
callでもアドレッシングとも全然無関係だわ
機能的には似たようなものに見えるけど全然別物だ

388:デフォルトの名無しさん
18/06/09 13:51:37.94 MhKfyDgC0.net
>>369
文系学生もプログラミングする時代になったって事だよ。
> 「何か」なんか理解しなくていい。それを使って何が出来るかだけ理解すればいい。
これな。最近の「○○って何ですか」っていう奴らは何なんだ?
お前らだって、日本語の全ての漢字を読めるわけでもないだろうに。
「デリゲート」は失敗作だから新言語を作る気がないのなら理解する必要はない。
あれはthis+関数ポインタで、一番近いのはC++の「メンバ関数ポインタ」だが、
無駄に「クラス」「関数ポインタ」「ラムダ」を抽象化しようとしておかしくなってる。
結局ラムダを導入してしまったし、当初の方針は間違いだと認められたことになる。
今後「デリゲート」を採用する言語はないだろうよ。

389:デフォルトの名無しさん
18/06/09 13:57:35.17 1jan2CXL0.net
.NET Core で過去の遺産が全て無くなるかと思ったけどそんなことはなかったぜ

390:デフォルトの名無しさん
18/06/09 13:59:17.43 VOfp/P7BM.net
>>375
誤解したままで最後までつづけるんか?

391:デフォルトの名無しさん
18/06/09 14:07:54.32 VOfp/P7BM.net
もともと関数がオブジェクトである言語はデリゲートを導入するメリットは少ない
c#にデリゲートが無かったらjavaの様に専用のインターフェイスを継承した無駄なクラスを作らなければならなかった
ActionやFuncやラムダがあればデリゲートが必要なかったと言ってるのは何かを誤解してる

392:デフォルトの名無しさん
18/06/09 14:19:40.58 MhKfyDgC0.net
>>377
理解してなくても使えれば問題ないんだよ。
お前だってPCの起動方法(BIOSとか)知らなくてもPC使ってるだろ。
MSIL読めなくてもC#使えるだろ。
CPUの例外/割り込み機構を知らなくてもtry/catch使えるだろ。
一般プログラマにとってはプログラミング言語は道具であって、それ以上でも以下でもない。
新言語を作りたいのなら学術的に正確に理解することが必要だが、普通の人はそうではない。
それ以前にC#が死ぬ可能性を考えた方がいい。
C#専用の「デリゲート」の理解はつぶしが利かない。
他言語にもある「ラムダ」の理解のほうが重要だ。
デリゲート


393:ヘ「クラス」と「関数ポインタ+バインド」で対応した方が良かったと思う。 C#には未だに「バインド」がない=デリゲートでの対応になるが、 実際、後付でバインドすることが出来ないだけ不便だろ。 >>378 Javaみたいなそもそも「関数ポインタ」がなかった糞言語と比較したら駄目だよ。 Cには関数ポインタはあった。 C#はそれを「デリゲート」として拡張した。 他言語は「第一級オブジェクト」として拡張した。 今のところ、後者の方が正解っぽいだろ。 (俺自身にはイマイチ「第一級オブジェクト」である利点/必然性は見えないのだが)



394:デフォルトの名無しさん
18/06/09 14:24:48.97 VOfp/P7BM.net
関数がもしobjectクラスから派生したオブジェクトになるとメンバーを持てることになるんだけど
A.B().ToString()のToStringが
B()というメソッド自体に係ってるのか
B()の返した戻り値にかかってるのかがよくわからないことになる

395:デフォルトの名無しさん
18/06/09 14:25:53.62 54mp5fzVM.net
Javaってstaticメソッドを関数インターフェースに渡すときは最適化してくれんの?

396:デフォルトの名無しさん
18/06/09 14:30:26.04 AO7Grx3Qa.net
1+2*3
こんな計算式があったときに1+2をしてから3かけて答えは9
こうはならないだろ。それは優先順位を定めてるから。(1+2)*3のようにかけば期待通りになる
それと同じで関数がオブジェクトでメンバー持ててもそれに合わせた処理の優先順位を定めればいいだけ

397:デフォルトの名無しさん
18/06/09 14:32:21.62 VOfp/P7BM.net
理解しないのと誤解してるのではわかっていないという点では同じだけど
理解してない場合は理解していない前提で行動できる
一方の誤解してる場合は悲惨だ

398:デフォルトの名無しさん
18/06/09 14:33:21.85 MhKfyDgC0.net
>>380
お前は右結合と左結合を勉強しろ

399:デフォルトの名無しさん
18/06/09 14:35:46.47 VOfp/P7BM.net
>>384
じゃあどういう風に記述したらオブジェクトである関数のプロパティやメソッドにアクセスできるかここに書いてもらいたいが

400:デフォルトの名無しさん
18/06/09 14:36:40.18 MhKfyDgC0.net
>>383
お前は日本語を勉強しろ。
俺達は「理解しなくていい」=「完全に理解してはいないという自覚の元で使え」と言っているのであって、
それは「誤解」には繋がらない。
「誤解」ってのは、「理解してない馬鹿が理解しているつもりになっている」事を言う。
例えば、右結合と左結合を知らないお前みたいな馬鹿のことだ。

401:デフォルトの名無しさん
18/06/09 14:39:35.51 MhKfyDgC0.net
>>385
意味不明。何を書いて欲しいのか分からん。
> A.B().ToString()
これはAのメソッドB()を呼んでその戻り値に対してToString()を呼ぶ。
少なくともJavaScriptではそう。
で、何をしたい場合の記述が欲しいんだ?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

285日前に更新/268 KB
担当:undef