C#, C♯, C#相談室 Part91 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0405デフォルトの名無しさん
2016/08/28(日) 14:35:00.94ID:hQF+q+Zk実行時に解決するのは非常にコストが高い。
多分仮想関数を理解してないんだと思うけど、静的メソッドはC++やC#の方式だと仮想関数テーブルに無いので仮想関数になり得ない
また、呼び出しに失敗する可能性があるというリスクがあり、静的型付け言語の良さを殺している
>そもそもC#ってパフォーマンス重視出来る言語じゃないよね。
大きな勘違い。Roslynとかではパフォーマンスをかなり重視してる。
実行時はネイティブコードになるので書き方によってはC++と同等の速度が出る。
(ただし、C++は危険な操作を行ったりできるのでその分有利)
>staticクラスは継承出来ない
なぜなら、staticクラスは「インスタンス化、継承できない」という指定付きのクラスだから。なぜintは数値しか表せないのかみたいな意味不明な主張
>・Shapeクラスにメソッド追加---(α)
Shapeクラスが汎用的に使ったり、ライブラリとして公開するクラスならどうしようもない
WPF、WinForms、Xamarinなど、プラットフォームによって描画方法は全然異なるのでDrawメソッドを決められない
>・GUI側でShapeクラスを継承したクラスを作って対応---(β)
手間が掛かり過ぎるし、構造体やsealedクラスなら継承はできない。
クラス内にフィールドで保持してもいいが、Int32WrapperとかStringWrapper、加えて列挙体や関数、タプルなんかのラッパークラスができて複雑に。
状況によってはInt32WrapperWrapperみたいなものも爆誕
■ このスレッドは過去ログ倉庫に格納されています