「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part129
http://mevius.2ch.net/test/read.cgi/tech/1497000961/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part130 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1ななしぃ♯ 転載ダメ©2ch.net (ワッチョイ 93aa-SrFS)
2017/07/18(火) 06:40:45.47ID:mH9qbH+m0726デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 11:25:19.91ID:+QB1TWiX0 >>724
そうだね。アーティストの俺には土方仕事を丸投げできるからかなり有利かも。
そうだね。アーティストの俺には土方仕事を丸投げできるからかなり有利かも。
727デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/27(日) 11:47:31.40ID:fbqxfljfa728デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 11:49:16.29ID:+QB1TWiX0 >>仕様書が無いのなら動作確認して自分で仕様書書くところから
ソースを解読してその仕様書を書く手順を考えている。うまくコンパイルして動かすこともできたん
でソースを解読しつつ整理して、最終的に変換をする。
具体的には
整理
1.クロスリファレンスをだしてグローバル変数を整理
2.画面がやたら多いので手書きで書き直すのはとっても大変だ。
しかし殆どはパラメータの設定のような単純な画面なので、画面の書き換えはプログラムで変換できそうだ。
しかし内部のイベントロジックをどうするかだな。画面はC#でもVBでも好きなように変換できるが、ロジック
はC#に変更するのは正気の沙汰ではないな。
やはりVB.netに置き換えるべき。となるとやはりVB.NET Winform以外の選択肢はないのか?
ソースを解読してその仕様書を書く手順を考えている。うまくコンパイルして動かすこともできたん
でソースを解読しつつ整理して、最終的に変換をする。
具体的には
整理
1.クロスリファレンスをだしてグローバル変数を整理
2.画面がやたら多いので手書きで書き直すのはとっても大変だ。
しかし殆どはパラメータの設定のような単純な画面なので、画面の書き換えはプログラムで変換できそうだ。
しかし内部のイベントロジックをどうするかだな。画面はC#でもVBでも好きなように変換できるが、ロジック
はC#に変更するのは正気の沙汰ではないな。
やはりVB.netに置き換えるべき。となるとやはりVB.NET Winform以外の選択肢はないのか?
729デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 11:56:58.26ID:+QB1TWiX0 >顧客から要望聞いてSEが再設計して仕様書作るのが正しい
もともと正しくないところから出発しているので、正しい方法は取れない。唯一できるのは
自由に作れるということだけ。しかも動きさえすればいいというレベルの客。ただし.netで
作るというのが条件でソースも提出することになっている。C#でもVBでもWPFでも問題ない。
大半をDLLにして、上っ面だけNETでもいい。
もともと正しくないところから出発しているので、正しい方法は取れない。唯一できるのは
自由に作れるということだけ。しかも動きさえすればいいというレベルの客。ただし.netで
作るというのが条件でソースも提出することになっている。C#でもVBでもWPFでも問題ない。
大半をDLLにして、上っ面だけNETでもいい。
730デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/27(日) 11:57:14.71ID:fbqxfljfa ID抽出してみたけど
プロに頼んだほうがいいよ
プロに頼んだほうがいいよ
731デフォルトの名無しさん (ワッチョイ adc0-2x4P)
2017/08/27(日) 12:01:04.00ID:FvXw0+6i0 ソース提出って下手な仕様書出すより厳しいと思うんだが
732デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/27(日) 12:03:03.81ID:fbqxfljfa733デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 12:16:29.66ID:+QB1TWiX0 平和だからね。
734デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 12:18:52.83ID:+QB1TWiX0 >プロに頼んだほうがいいよ
頼んだのだけどやる人がいない。
頼んだのだけどやる人がいない。
735デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/27(日) 12:21:18.06ID:8n2Hj3z6a >>720
VS2008まではVB6⇒VB2008へのコンバーターがついてたので、
VS2008かVB2008 Expressをなんとか手に入れて、とりあえずVB2008に変換して
みたらどうかなと。
まあ変換精度は高くないので手直ししないとまず正常に動かないし、
返還後のコードはMicrosoft.VisualBasic名前空間とかVBランタイム関数とか
使いまくりなので、それをさらにC#で書き直すのはかなり大変だと思うけど
VS2008まではVB6⇒VB2008へのコンバーターがついてたので、
VS2008かVB2008 Expressをなんとか手に入れて、とりあえずVB2008に変換して
みたらどうかなと。
まあ変換精度は高くないので手直ししないとまず正常に動かないし、
返還後のコードはMicrosoft.VisualBasic名前空間とかVBランタイム関数とか
使いまくりなので、それをさらにC#で書き直すのはかなり大変だと思うけど
736デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 12:31:29.70ID:+QB1TWiX0 >>720
それは調べてやってみたが、1時間かかっても変換できなかったよ。
一時間たってキャンセルしたら1kのLogファイルが残ってた。
多分簡単なものなら変換できるだろうと淡い期待はもっている。リファクタリングして疎結合にすれば
3つに分解できそう。
IOコントロール
DBアクセス
画面
IOが厄介だなーとは思う。多分この部分がよくわからないのでプロは逃げ出す。
それは調べてやってみたが、1時間かかっても変換できなかったよ。
一時間たってキャンセルしたら1kのLogファイルが残ってた。
多分簡単なものなら変換できるだろうと淡い期待はもっている。リファクタリングして疎結合にすれば
3つに分解できそう。
IOコントロール
DBアクセス
画面
IOが厄介だなーとは思う。多分この部分がよくわからないのでプロは逃げ出す。
737デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 12:35:37.88ID:+QB1TWiX0 >使いまくりなので、それをさらにC#で書き直すのはかなり大変だと思うけど
混在してつかえるし、VBのクラスはそのまま呼び出せるので不都合のある部分だけラッパーすればいいだけでは?
それならVBで書けよって話になるかもしれないが、追加部分だけでもC#にしたい。
混在してつかえるし、VBのクラスはそのまま呼び出せるので不都合のある部分だけラッパーすればいいだけでは?
それならVBで書けよって話になるかもしれないが、追加部分だけでもC#にしたい。
738デフォルトの名無しさん (ワンミングク MM5a-fQI7)
2017/08/27(日) 13:14:51.06ID:Ss/d45M6M VB6置き換えは元が酷いスパゲティだしCOMコンポーネントの代替ライブラリが見つかんないと詰むしロクなことにならない
要件定義からリビルドしたほうがマシだぜ
要件定義からリビルドしたほうがマシだぜ
739デフォルトの名無しさん (ワッチョイ 8696-M74o)
2017/08/27(日) 13:15:02.42ID:zg/5OaZO0 htmlの文章をC#で書くメリットは有りますか?
無ければテンプレ落として来て挿入するだけなんですけど。
無ければテンプレ落として来て挿入するだけなんですけど。
740デフォルトの名無しさん (ワッチョイ 294d-vgeI)
2017/08/27(日) 13:16:46.63ID:Pcpci17F0 素人はすぐ新しく作り直せとか言うんだよな。
741デフォルトの名無しさん (ワンミングク MM5a-fQI7)
2017/08/27(日) 13:29:37.85ID:Ss/d45M6M >>740
一般論的に言ってリプレースは最後の手段だ
少なくとも数ヶ月はリファクタリング、リアーキティングなど試せることは試した上で
それでも手に負えないと判断してからリプレースに着手する
いきなりリプレースはリスクがデカすぎる
しかしながら経験上VB6の移植は結局リプレースになることが多いんだわ
一般論的に言ってリプレースは最後の手段だ
少なくとも数ヶ月はリファクタリング、リアーキティングなど試せることは試した上で
それでも手に負えないと判断してからリプレースに着手する
いきなりリプレースはリスクがデカすぎる
しかしながら経験上VB6の移植は結局リプレースになることが多いんだわ
742デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 13:33:01.79ID:+QB1TWiX0743デフォルトの名無しさん (ワンミングク MM5a-fQI7)
2017/08/27(日) 13:48:07.30ID:Ss/d45M6M744あ (スプッッ Sdca-Vrzw)
2017/08/27(日) 14:21:50.71ID:0sFxQlMgd745デフォルトの名無しさん (フリッテル MMce-2y0c)
2017/08/27(日) 16:04:23.27ID:aV3uBNlQM746デフォルトの名無しさん (ワッチョイ 0a11-xpGE)
2017/08/27(日) 16:30:03.45ID:QZuIwK0r0 VB6のコードを解読しないといけないアーティストw
システムの内側からじゃなく外側から整理して
ユースケース単位や機能単位でコードリーディングしていくのが効率的
システムの内側からじゃなく外側から整理して
ユースケース単位や機能単位でコードリーディングしていくのが効率的
747デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/27(日) 16:47:16.97ID:UU3MXRkga プログラム本体やシステム全体の仕様が分かってるならゼロから書き直した方が
結局早いと思うけどね。
そもそも今更C#でに移行するのは、将来手を入れる可能性があるからじゃないの?
だとしたら長期的なメリットデメリットを考えてもそうした方がいいよね。
「動いてるプログラムを触ってはいけない」ってのは個人的にはダメな人の台詞だと思うね。
それ、自分のコードを理解する能力が不十分だって語るに落ちてないか?
結局早いと思うけどね。
そもそも今更C#でに移行するのは、将来手を入れる可能性があるからじゃないの?
だとしたら長期的なメリットデメリットを考えてもそうした方がいいよね。
「動いてるプログラムを触ってはいけない」ってのは個人的にはダメな人の台詞だと思うね。
それ、自分のコードを理解する能力が不十分だって語るに落ちてないか?
748デフォルトの名無しさん (ワッチョイ 564c-8a/Z)
2017/08/27(日) 17:04:06.72ID:+4gR/MAE0 COMとドトネトの相性が良くないのは意外だったなあ
749デフォルトの名無しさん (アウアウオー Sa72-w74m)
2017/08/27(日) 17:30:52.38ID:+kJVVvm3a750デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/27(日) 17:33:19.12ID:UU3MXRkga751デフォルトの名無しさん (ワンミングク MM5a-fQI7)
2017/08/27(日) 17:35:20.33ID:QpZ6CaB1M 既存のクラスを触りたくないといって
間違った場所にコードを追加していったやつがおってな
気がつくと見事なスパゲティの塊が出来上がっていたんだとさ
間違った場所にコードを追加していったやつがおってな
気がつくと見事なスパゲティの塊が出来上がっていたんだとさ
752デフォルトの名無しさん (ワッチョイ 0a11-xpGE)
2017/08/27(日) 18:26:10.44ID:QZuIwK0r0 >>747
詳細仕様が分かってないからコードを読もうとしてるんじゃ?
詳細仕様が分かってないからコードを読もうとしてるんじゃ?
753デフォルトの名無しさん (アウアウオー Sa72-w74m)
2017/08/27(日) 18:37:29.03ID:q8gbijSsa >>750
それは現状が正解じゃない状態になったのかい?
それは現状が正解じゃない状態になったのかい?
754デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 19:20:19.44ID:+QB1TWiX0 技術的アプローチに対してアーティスト的アプローチもある。そもそも専門家が遣らないという
のは技術的に興味がない。もしくは打算的技術者なら経済的に見てもメリットがないということだ。
つまり儲からない。そういう結論がでている。
しかしアーティストの見解は違う。アーティストにとっては技術とか打算とかの優先順位は
かなり低い。すべての仕事はどう料理するかがアーティストのアーティストたる能力の発揮し
どころだから、技術屋から見るとかなりリスキーであっても敢てやってみる。
のは技術的に興味がない。もしくは打算的技術者なら経済的に見てもメリットがないということだ。
つまり儲からない。そういう結論がでている。
しかしアーティストの見解は違う。アーティストにとっては技術とか打算とかの優先順位は
かなり低い。すべての仕事はどう料理するかがアーティストのアーティストたる能力の発揮し
どころだから、技術屋から見るとかなりリスキーであっても敢てやってみる。
755デフォルトの名無しさん (ワッチョイ dd6f-M74o)
2017/08/27(日) 19:24:45.57ID:+QB1TWiX0 >>752
表面的な仕様というかパラメータの設定とか動作などの取り扱い方法は客先で大体はわかる。
しかしメカの細かい動作なんかの部分は一切分からない。動作検証は客先でやってくれる。
結果が正しいかどうかは客先でわかる。
表面的な仕様というかパラメータの設定とか動作などの取り扱い方法は客先で大体はわかる。
しかしメカの細かい動作なんかの部分は一切分からない。動作検証は客先でやってくれる。
結果が正しいかどうかは客先でわかる。
756デフォルトの名無しさん (ワッチョイ 8ac4-iENb)
2017/08/27(日) 19:44:16.32ID:DBQBoW3m0 22回だと
757デフォルトの名無しさん (ワッチョイ 8661-2x4P)
2017/08/27(日) 19:46:36.23ID:hG554Uge0 もうNGでいいよ。作り話だろうから
758デフォルトの名無しさん (ワッチョイ 0a11-xpGE)
2017/08/27(日) 20:58:41.04ID:QZuIwK0r0 >>754
あ〜〜、敢えてね・・・(察し)
あ〜〜、敢えてね・・・(察し)
759デフォルトの名無しさん (ワキゲー MMf2-kkbx)
2017/08/27(日) 21:35:03.08ID:htfhfzKBM 虚言は多弁にて構築する
760デフォルトの名無しさん (アウーイモ MM91-1Eq8)
2017/08/28(月) 21:24:49.09ID:jkZMoX4aM >>720
昔、なんかのツール使ってVB6を.NETにしたよ。
急には上がらないから2005にして2008にして2010だったかな。
段階的に変えていく。
それぞれの.NETstudio使う。
前のバージョンを上げられるよ。
2005から2010とかは確かできない。
で、最後にC♯にすればよくね?
昔、なんかのツール使ってVB6を.NETにしたよ。
急には上がらないから2005にして2008にして2010だったかな。
段階的に変えていく。
それぞれの.NETstudio使う。
前のバージョンを上げられるよ。
2005から2010とかは確かできない。
で、最後にC♯にすればよくね?
761デフォルトの名無しさん (ワッチョイ fde5-/mpg)
2017/08/28(月) 21:34:07.26ID:o3aBTh5N0 VB6から2010までは一気にいけたはず
そのあと2013までいったら2017まで共通
そのあと2013までいったら2017まで共通
762デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/28(月) 23:16:58.67ID:LI+9ess2a 上にすでに書いたけど、VB6のコンバーター(アップグレードウィザードとか言ったと思ったけど)
がついてたのはVS2008までだよw
がついてたのはVS2008までだよw
763デフォルトの名無しさん (ワッチョイ fde5-/mpg)
2017/08/29(火) 00:32:19.56ID:TMhzTuGH0 マジか
VB6を2010で開いた記憶があったがボケちゃったな
すまんこ
VB6を2010で開いた記憶があったがボケちゃったな
すまんこ
764デフォルトの名無しさん (ワッチョイ 416f-cEZM)
2017/08/29(火) 00:56:21.39ID:BmkqqErg0 >>763
発言には責任を持って手で変換してね はぁと
発言には責任を持って手で変換してね はぁと
765デフォルトの名無しさん (ワンミングク MM5a-fQI7)
2017/08/29(火) 07:36:26.75ID:X4Q/TPlHM コンバーターってロクな結果にならないアレか
手で移植したほうがマシって有名なやつ
手で移植したほうがマシって有名なやつ
766デフォルトの名無しさん (ワッチョイ 86a2-2x4P)
2017/08/29(火) 07:50:29.80ID:se0bVMb80 前VB6を.NETに移行する案件あったなスルーしてよかった新人突っ込んだらしいし
配列要素の1始まりとか鬼門過ぎるVB6触ったこと無いが
配列要素の1始まりとか鬼門過ぎるVB6触ったこと無いが
767デフォルトの名無しさん (ワッチョイ 1a91-vgeI)
2017/08/29(火) 08:00:33.67ID:4AYdjmhP0768デフォルトの名無しさん (ブーイモ MM2e-Fy2N)
2017/08/29(火) 08:13:07.45ID:KBcajP1UM VB.NETの配列はX(N)で宣言するとX(0)〜X(N)まで確保される仕様だから、
VB6からの移植の場合はX(0)を無視すればインデックスはだいたいそのままで動くぞ
汚いといえば汚いけどこの仕様を決めた奴は有能だと思う
VB6からの移植の場合はX(0)を無視すればインデックスはだいたいそのままで動くぞ
汚いといえば汚いけどこの仕様を決めた奴は有能だと思う
769デフォルトの名無しさん (ワッチョイ cd03-2Mp8)
2017/08/29(火) 14:29:00.01ID:z6aeY2gd0 逆にVBを1始まりにした奴はとんでもない無能だな
770デフォルトの名無しさん (アウアウカー Sa85-yhlS)
2017/08/29(火) 14:50:21.63ID:qDW+6cr0a VB以前のBASICからの伝統なので、、、
771デフォルトの名無しさん (アウアウカー Sa85-yhlS)
2017/08/29(火) 14:52:25.47ID:qDW+6cr0a いや、その前のCOBOL,FORTRANからか
772デフォルトの名無しさん (ワッチョイ ca66-2x4P)
2017/08/29(火) 15:06:42.27ID:r/k5/IVc0 MS-Basic書いたのはビル・ゲイツだな
773デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/29(火) 15:41:44.42ID:/sqn3fx+a BASICのBの意味を考えれば、その方がとっつきやすいという判断でしょう。
プログラマの視点で考えれば、0オリジンの方がきれいに実装できるに決まってるし
プログラマの視点で考えれば、0オリジンの方がきれいに実装できるに決まってるし
774デフォルトの名無しさん (JP 0H9d-2x4P)
2017/08/29(火) 15:53:08.07ID:XtumNqBwH VB6でもデフォルトはOption Base 0だろ?
775デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/29(火) 16:14:24.95ID:/sqn3fx+a776デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/29(火) 17:59:14.69ID:dKAQo2Vla 配列が0スタートのせいでバグが量産されてるという気もするが
それは個人の考え方次第
配列1個目が0番
配列2個目が1番
配列N個目がN-1番
それは個人の考え方次第
配列1個目が0番
配列2個目が1番
配列N個目がN-1番
777デフォルトの名無しさん (ドコグロ MM45-+ULf)
2017/08/29(火) 20:03:57.06ID:zDssXbBFM 気になるなら下限も指定すればいいのに...
778デフォルトの名無しさん (アウアウカー Sa85-PSHs)
2017/08/29(火) 20:53:58.30ID:Vnq3Ax6Ua 配列の要素数があれ?ってなる
779デフォルトの名無しさん (ワッチョイ caea-dMKE)
2017/08/29(火) 21:20:52.33ID:BqQa7G9t0780デフォルトの名無しさん (ワッチョイ caea-dMKE)
2017/08/29(火) 21:23:35.54ID:BqQa7G9t0 ゼロで統一じゃないや。C系に揃えるってことでした。
ExcelのCellオブジェクトと関連させる場合は
1スタートto要素数=最終行or列で合う
ExcelのCellオブジェクトと関連させる場合は
1スタートto要素数=最終行or列で合う
781デフォルトの名無しさん (ワッチョイ ca66-2x4P)
2017/08/29(火) 21:34:26.94ID:r/k5/IVc0 Cの基本はポインタで、配列ってのはポインタのシンタックスシュガーだからね
添字は*(p+x)のxだから0始まり
添字は*(p+x)のxだから0始まり
782デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/29(火) 21:38:30.14ID:K1eHFhhta 折衷っていうか文化の違いでしょ
C系と違ってVBの配列作成時に指定する値は、添え字の最大値ってことになってたはず
C系と違ってVBの配列作成時に指定する値は、添え字の最大値ってことになってたはず
783デフォルトの名無しさん (ワッチョイ fe6d-EUPY)
2017/08/29(火) 23:45:49.74ID:Z8GIMLiK0 抽象クラスのoverride で、型を変えるような事はできるでしょうか?
以下のようなコードが書けるかなと思ったのですが
戻り値はあくまでList<object>でないとダメみたいなので
書く方法があればお教えください
public class hoge { }
public class fuga { }
public abstract class Base
{
public abstract List<object> GetData();
}
public class SubOne : Base
{
public override List<hoge> GetData()
{
return null;
}
}
public class SubTwo : Base
{
public override List<fuga> GetData()
{
return null;
}
}
以下のようなコードが書けるかなと思ったのですが
戻り値はあくまでList<object>でないとダメみたいなので
書く方法があればお教えください
public class hoge { }
public class fuga { }
public abstract class Base
{
public abstract List<object> GetData();
}
public class SubOne : Base
{
public override List<hoge> GetData()
{
return null;
}
}
public class SubTwo : Base
{
public override List<fuga> GetData()
{
return null;
}
}
784デフォルトの名無しさん (ワッチョイ 0a11-xpGE)
2017/08/30(水) 00:17:18.47ID:RiHZq49u0 それはシグニチャが違うから別メソッドじゃ?
overrideはずしてみ
overrideはずしてみ
785デフォルトの名無しさん (アウアウエー Sab2-A9BZ)
2017/08/30(水) 00:21:31.70ID:M/4qyBdLa これじゃいかんの?
public abstract class Base<T>
{
public abstract List<T> GetData();
}
public abstract class Base<T>
{
public abstract List<T> GetData();
}
786デフォルトの名無しさん (ワッチョイ adc0-2x4P)
2017/08/30(水) 00:30:38.41ID:aQB+rR710 同じGetDataメソッドで別のデータ取得させたいのはなんか理由あるのかね
hogeとfugaが抽象化できるならともかく
hogeとfugaが抽象化できるならともかく
787デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/30(水) 01:23:10.88ID:ZNhSKe/9a typescriptやjavascriptから流れてきたんだろうな
と勝手に妄想
と勝手に妄想
788デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/30(水) 01:26:58.62ID:ZNhSKe/9a >>784
戻り値の型だけ違うシグネチャは判定ができないから設定できない
戻り値の型だけ違うシグネチャは判定ができないから設定できない
789デフォルトの名無しさん (ワッチョイ a511-7WPt)
2017/08/30(水) 01:31:51.49ID:RP2OopsU0 ジェネリック使え
790デフォルトの名無しさん (ワッチョイ 4aea-oHh7)
2017/08/30(水) 01:43:21.54ID:DqOxxcW/0 関係ないけど戻り値はインタフェースで返してくれよな
791デフォルトの名無しさん (ワッチョイ 0a11-xpGE)
2017/08/30(水) 02:22:24.13ID:RiHZq49u0792デフォルトの名無しさん (ワッチョイ caea-Jukv)
2017/08/30(水) 04:42:52.63ID:RyepnT5X0 >>785
これ
これ
793デフォルトの名無しさん (アウアウイー Sa2d-oKtA)
2017/08/30(水) 12:13:11.62ID:ZNhSKe/9a 本来は継承で解決すべき事柄じゃないものも何でも継承で
解決しようとする
解決しようとする
794デフォルトの名無しさん (ワッチョイ cd03-2Mp8)
2017/08/30(水) 13:29:51.66ID:flwVYOal0 一見>>785でよさそうに思えるが
よくよく考えると使い道が分からん
Base<hoge> と Base<piyo> は違う型になるので
それらを継承したクラス同士も違うクラスから派生しているっつーことで
統一的には扱えなくなる
差分プログラミングがしたいならそれでよいが
なら、Baseクラスのabstractの意味は何だ?
よくよく考えると使い道が分からん
Base<hoge> と Base<piyo> は違う型になるので
それらを継承したクラス同士も違うクラスから派生しているっつーことで
統一的には扱えなくなる
差分プログラミングがしたいならそれでよいが
なら、Baseクラスのabstractの意味は何だ?
795デフォルトの名無しさん (バッミングク MM9f-O9jT)
2017/08/31(木) 07:11:58.47ID:uXMS1+GuM 783ですが、抽象化したテーブルクラスを作って、テーブル単位で選択結果を返す具象クラスを作りたかったのですが、Dapperを使うのでメソッドの戻り値がList<T>となり戻り値の型が具象クラス毎に違っています
こういう例が無さそうということはアンチパターンやってるでしょうか
こういう例が無さそうということはアンチパターンやってるでしょうか
796デフォルトの名無しさん (アウアウオー Sadf-G83I)
2017/08/31(木) 07:23:02.32ID:ukHSVGRna 目的を明確にしていらねーもん全部捨てろよ
797デフォルトの名無しさん (ワントンキン MM9f-+LVy)
2017/08/31(木) 07:53:46.13ID:5L4gV5sHM >>795
interface IDao<TEntity, TId> {
TEntity ReadOne(TId id);
IEnumerable<TEntity> ReadPage(int pageSize, int pageIndex);
void Create(TEntity e);
void Update(TEntity e);
void Delete(TEntity e);
}
class FooDao : IDao<Foo> { ... }
これじゃいかんのか?
interface IDao<TEntity, TId> {
TEntity ReadOne(TId id);
IEnumerable<TEntity> ReadPage(int pageSize, int pageIndex);
void Create(TEntity e);
void Update(TEntity e);
void Delete(TEntity e);
}
class FooDao : IDao<Foo> { ... }
これじゃいかんのか?
798デフォルトの名無しさん (バットンキン MM67-O9jT)
2017/08/31(木) 18:48:22.38ID:RNa0QExKM >>797
テーブルのみを扱うので同様の属性という意味で抽象クラス使ったのですが、インターフェイスで選択したデータを返す機能として定義した方が良いでしょうか
抽象とインターフェイスの使い分けに今ひとつ自信がなくて
テーブルのみを扱うので同様の属性という意味で抽象クラス使ったのですが、インターフェイスで選択したデータを返す機能として定義した方が良いでしょうか
抽象とインターフェイスの使い分けに今ひとつ自信がなくて
799デフォルトの名無しさん (ブーイモ MMff-9zQU)
2017/08/31(木) 19:00:57.90ID:knvUk5zeM >>798
使い分ける必要はない
is Aだのcan Aだの言ってたのは昔の話で、今時はどうしても実装を継承する必要がある場合以外は基本的にインターフェースを使う
もっというと、実装継承のために抽象クラスを使う場合はインターフェース継承とは本来区別して考えるべきで、
インターフェース←抽象クラス←具象クラス
という継承関係にするのが理想
抽象クラスはあくまで実装の共通化のためのツールに過ぎない
使い分ける必要はない
is Aだのcan Aだの言ってたのは昔の話で、今時はどうしても実装を継承する必要がある場合以外は基本的にインターフェースを使う
もっというと、実装継承のために抽象クラスを使う場合はインターフェース継承とは本来区別して考えるべきで、
インターフェース←抽象クラス←具象クラス
という継承関係にするのが理想
抽象クラスはあくまで実装の共通化のためのツールに過ぎない
800デフォルトの名無しさん (アウアウイー Sac7-b8Mh)
2017/08/31(木) 21:53:11.25ID:gYg3phKFa Table<T>を作ってGetData<T>
それ以上の機能を使いたかったら適当なクラスを作ってTable<T>をコンポジション
それ以上の機能を使いたかったら適当なクラスを作ってTable<T>をコンポジション
801デフォルトの名無しさん (ワッチョイ 636e-9zQU)
2017/08/31(木) 22:03:15.27ID:rtd0E2rY0 >>800
単体テストで差し替えできなくね
単体テストで差し替えできなくね
802デフォルトの名無しさん (アウアウオー Sadf-G83I)
2017/08/31(木) 22:22:29.61ID:izluyX1Ma803デフォルトの名無しさん (ワッチョイ cfa2-X0kF)
2017/09/01(金) 05:13:10.52ID:JBM8M4Dg0 MariaDBってデフォで接続できたりする?
804デフォルトの名無しさん (バットンキン MM67-O9jT)
2017/09/01(金) 07:26:54.74ID:swl6M8kLM805デフォルトの名無しさん (ワッチョイ cfaa-gHR8)
2017/09/01(金) 14:07:02.06ID:RTadbuNn0 インターフェースは、has-a、部品化。車とハンドル。
抽象クラスは、is-a、継承。車と消防車
継承は、クラスに親子関係がある。
非常に似ているもの同士
部品化は、全く異なるもの同士
DI は、XMLなどの設定ファイルから、クラスを自動的に作る、ジェネレーター
抽象クラスは、is-a、継承。車と消防車
継承は、クラスに親子関係がある。
非常に似ているもの同士
部品化は、全く異なるもの同士
DI は、XMLなどの設定ファイルから、クラスを自動的に作る、ジェネレーター
806デフォルトの名無しさん (ワッチョイ e303-3JEm)
2017/09/01(金) 15:17:36.03ID:sKG/CNAU0807デフォルトの名無しさん (ワッチョイ e303-3JEm)
2017/09/01(金) 15:18:46.48ID:sKG/CNAU0 てかそんな(脳の)状態でプログラム書けるものなの?
C#優秀すぎだろ
C#優秀すぎだろ
808デフォルトの名無しさん (ワッチョイ cfaa-gHR8)
2017/09/01(金) 15:27:41.14ID:RTadbuNn0 スッキリわかる Java入門 第2版、2014
Javaの人は皆、この本で、オブジェクト指向を学ぶ。
というか、日本では、この本しか無い
だから皆、C#をやる前に、Javaから勉強する
オブジェクト指向の最初のクイズが、is-a, has-a の例題
Javaの人は皆、この本で、オブジェクト指向を学ぶ。
というか、日本では、この本しか無い
だから皆、C#をやる前に、Javaから勉強する
オブジェクト指向の最初のクイズが、is-a, has-a の例題
809デフォルトの名無しさん (ワッチョイ 0311-u8bs)
2017/09/01(金) 15:38:08.33ID:HIaJQCDW0810デフォルトの名無しさん (ワッチョイ e303-3JEm)
2017/09/01(金) 15:51:33.77ID:sKG/CNAU0 で、最初のクイズで間違ってたら、どうしようもなくね?
has-aはコンポジションであってインターフェースは関係ない
has-aはコンポジションであってインターフェースは関係ない
811デフォルトの名無しさん (ブーイモ MMff-9zQU)
2017/09/01(金) 15:59:59.83ID:olFLJFhOM この人あちこちのスレに突如出現しては的外れで一方的な持論とともに書籍を紹介する変な人だよね
書籍宣伝のボットなんじゃないかという気もするけど、もし人工知能だとしたらかなり優秀だと思う
書籍宣伝のボットなんじゃないかという気もするけど、もし人工知能だとしたらかなり優秀だと思う
812スッキリ厨 (ワッチョイ cfaa-gHR8)
2017/09/01(金) 16:39:36.84ID:RTadbuNn0 「たのしいRuby」「みんなのPython」とか、
掌田津耶乃の「はじめてのJavaScript」では、
オブジェクト指向の説明は、数十ページ
一方「スッキリわかる Java入門」では、250ページ!
他を圧倒してる
漏れは、10言語・数十冊以上は読んでる
本を読む順番は、
1. スッキリわかる Java入門
2. たのしいRuby
3. みんなのPython
C# なんかは、後の方
掌田津耶乃の「はじめてのJavaScript」では、
オブジェクト指向の説明は、数十ページ
一方「スッキリわかる Java入門」では、250ページ!
他を圧倒してる
漏れは、10言語・数十冊以上は読んでる
本を読む順番は、
1. スッキリわかる Java入門
2. たのしいRuby
3. みんなのPython
C# なんかは、後の方
813デフォルトの名無しさん (アウアウオー Sadf-G83I)
2017/09/01(金) 16:42:51.82ID:Gpi3WshSa814デフォルトの名無しさん (JP 0H47-X0kF)
2017/09/01(金) 16:44:01.49ID:dv5tNHSMH Javaが一番スッキリしてないと思うが
815デフォルトの名無しさん (ブーイモ MMff-Oa4x)
2017/09/01(金) 16:46:00.19ID:JdxtetydM816デフォルトの名無しさん (アウアウオー Sadf-G83I)
2017/09/01(金) 16:59:37.83ID:G1MJZtxwa java,ruby,pythonの入門書に共通してるのが作って覚える系の本があまりない
javaはandroidのアプリの本が数冊だが出ているがandroidなんだよね
エミュでしか動かせなかったりイマイチ
そういう意味で入門書にはc#をオススメしたい
これならwindowsアプリが具体的に作って動かせるので絶対に初心者にはこちらのがいい
csvやxlsファイルの処理やDB接続の処理が書いてあったりするのもGood
javaはandroidのアプリの本が数冊だが出ているがandroidなんだよね
エミュでしか動かせなかったりイマイチ
そういう意味で入門書にはc#をオススメしたい
これならwindowsアプリが具体的に作って動かせるので絶対に初心者にはこちらのがいい
csvやxlsファイルの処理やDB接続の処理が書いてあったりするのもGood
817デフォルトの名無しさん (ワントンキン MM9f-hCsL)
2017/09/01(金) 18:15:16.28ID:e0+gOffZM スッキリは詳しい説明をはぐらかして初心者を誤魔化そうって思惑が透けて見えんだよね
818デフォルトの名無しさん (ワキゲー MMdf-7W5h)
2017/09/01(金) 18:35:46.75ID:UZeCG1ZbM819デフォルトの名無しさん (ワッチョイ ff11-BPzU)
2017/09/01(金) 20:50:25.60ID:A4rxsWGh0820デフォルトの名無しさん (アウアウエー Sadf-nbtu)
2017/09/01(金) 21:08:27.70ID:v3Wg48+ra 真面目に言ってるのかボケてるのか何なんだろうねw
821デフォルトの名無しさん (ワッチョイ 832d-6h2J)
2017/09/01(金) 21:51:22.37ID:li9KR7ak0 UnityのためにC#もちょこちょこ勉強し始めたけど、Javaと大分似てるんだなこれ
本買おうと思ったけど、完全な新規向けのじゃなくて
言語仕様についてわりとがっつり書いてあるような本でお勧めってあります?
本買おうと思ったけど、完全な新規向けのじゃなくて
言語仕様についてわりとがっつり書いてあるような本でお勧めってあります?
822デフォルトの名無しさん (ワッチョイ ff66-X0kF)
2017/09/01(金) 21:58:15.49ID:bJwSdbz60 入門書に移譲って書いてなかったんだろうか?
823デフォルトの名無しさん (ワッチョイ e303-3JEm)
2017/09/01(金) 21:59:42.54ID:sKG/CNAU0 求めているものとは違うかもだけど
だいぶん古いけど
連載 改訂版 C#入門
http://www.atmarkit.co.jp/ait/subtop/features/dotnet/csharp_abc2_index.html
はわりとがっつりC#の文法を網羅的に説明している
筆者の語りはうざいが・・・
だいぶん古いけど
連載 改訂版 C#入門
http://www.atmarkit.co.jp/ait/subtop/features/dotnet/csharp_abc2_index.html
はわりとがっつりC#の文法を網羅的に説明している
筆者の語りはうざいが・・・
824デフォルトの名無しさん (ワッチョイ e303-3JEm)
2017/09/01(金) 22:03:23.25ID:sKG/CNAU0825デフォルトの名無しさん (アウアウイー Sac7-b8Mh)
2017/09/01(金) 22:08:01.94ID:XixvX44ca クラスの機能はできるだけ簡素にを守っていると
is-aでいられるのは本当に基本的なクラスだけになる
普通にやってると絶対has-aの関係になる
継承を有効に使えるのはほんの一部
is-aでいられるのは本当に基本的なクラスだけになる
普通にやってると絶対has-aの関係になる
継承を有効に使えるのはほんの一部
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
