- ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止]©2ch.net
707 :デフォルトの名無しさん[sage]:2015/09/13(日) 12:08:57.26 ID:Y0jkFYe/ - 個人的には、そもそも実体が3つ必要なのだから、3回書くのが自然だと思えるが。
実際はただの枠だけだから>>683程度で済むはずだし。 ・静的メンバは継承されるとその都度新しく作られる ・静的メンバは継承されず、常に親を参照する のどちらの仕様を選択するかで、C#もC++も後者。(他は知らない) 前者用のキーワードすらないので、「必要ない」という判断なのだろう。 用途としてないと言うよりは、コンセプト上「その都度書け」なのだと思われる。 staticキーワード1個につき1実体が保証されることになる。 テクニックに凝らず、3回書くのが一番マシだと思うが。 >>696ならstaticにして纏めた方がいいと思う。
| - ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止]©2ch.net
715 :デフォルトの名無しさん[sage]:2015/09/13(日) 22:41:22.49 ID:Y0jkFYe/ - >>714
ちなみにC++だとテンプレートクラス内でstatic宣言してそれを継承すると出来るらしい。 妥当かどうかは微妙だが。 http://dixq.net/forum/viewtopic.php?f=3&t=3169 C#だとジェネリックになるが、C++よりも機能は小さい。 多分型の一般化だけだ。 https://msdn.microsoft.com/ja-jp/library/c6cyy67b.aspx C#について詳しくないのでこれ以上は分からないが、 仮にジェネリックでstaticを宣言できたとしても、そちらのケースだと多重継承が必要となる。 C#ではこれは出来ないから、やっぱり無理だと思う。 技巧的に凝るのも結果的に技術力を上げるので悪いことではない。 テストコードとしていいのなら色々やるのもありだと思う。(但し傍目には意味不明なコードになりがち) 本番コードなら格好悪くても3回書いとくのが無難だと思う。(不細工だが見れば分かるコードに留まる)
| - ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止]©2ch.net
720 :デフォルトの名無しさん[sage]:2015/09/13(日) 23:05:05.12 ID:Y0jkFYe/ - >>716
継承関係はA-ジェネリック(内側でstatic宣言)-BCDということか? BCDが型違い等で上手く別のジェネリック実体を生成させらられば確かに出来そうだ。 技巧的にやるのなら、dummy というプロパティでも作って、BCDで型違いにしておけばいい。 ただまあ、やっぱ3回書けよw
|
|