mql5におけるOOP、テンプレート、マクロ、微妙な使い分け - ページ 7 1234567891011121314...28 新しいコメント Alexey Navoykov 2019.01.25 13:36 #61 Ilya Malev:私見ですが、悪いことばかりではありません。C#の基本的なコアインターフェースはそれほど多くなく、そのメソッドを1つの基本的なスーパークラスに還元し、必要な人に継承させることができると私は考えています。 必要な人に必要なものを継承する」とはどういう意味でしょうか? クラス全体ではなく、その一部を継承することでしょうか?) そのような関数は知りません Ilya Malev 2019.01.25 13:45 #62 Alexey Navoykov: 必要なものを継承する」とはどういう意味ですか? クラス全体ではなく、その一部を継承するのですか?) そのような機能には詳しくないのですが。そうではなく、多くの仮想関数を 定義し、必要に応じて継承元でオーバーロードするという意味です。 Alexey Navoykov 2019.01.25 14:04 #63 Ilya Malev:そうではなく、多くの仮想関数を 定義し、必要に応じて継承元でオーバーロードするという意味です。 それは完全なカオスであり、コントロールの欠如です。 インターフェースは、「必然的に」ではなく「必ず」実装しなければ ならない抽象的なメソッドを定義します。また、この方法では、どこかのメソッドをオーバーロードするのを忘れた場合、プログラムは何事もなかったかのようにコンパイルされますが、必要なメソッドの代わりにダミーと呼ばれるメソッドが使用されます。 Ilya Malev 2019.01.25 14:09 #64 Alexey Navoykov: それは完全なカオスと制御不能です。 インターフェースは、「どうしても」ではなく、「必ず」実装しなければ ならない抽象的なメソッドを定義しています。また、この方法では、どこかのメソッドをオーバーロードし忘れた場合、プログラムは何事もなかったかのようにコンパイルされますが、必要なメソッドの代わりにプログラムが呼び出されることになります。空白ではなく、「未実装」の例外です。C#では、そこらじゅうにある。 Vasiliy Sokolov 2019.01.25 14:10 #65 Alexey Navoykov:...どこかのメソッドをオーバーロードし忘れると、プログラムは何事もなかったかのようにコンパイルされますが、必要なメソッドの代わりに空白のメソッドが呼び出されます。 これは正常です...。ちなみにMQLではそうなっています;( Alexey Navoykov 2019.01.25 14:11 #66 Ilya Malev:空白ではなく、「未実装」の例外です。C#でも、あちこちにあるようです。 重要なのは、これらのバグはコンパイル時に捕らえることができる(そして捕らえるべきである)にもかかわらず、実行時にバグを捕らえようと提案していることです。 Alexey Navoykov 2019.01.25 14:12 #67 Vasiliy Sokolov:ちなみにMQLではそうなっています;( 彼らの標準ライブラ リのことですか?) Ilya Malev 2019.01.25 14:13 #68 Alexey Navoykov: このようなバグはコンパイル時に捕らえることができる(そして捕らえるべき)のですが、あなたは実行時にバグを捕らえようと提案されています。クラスのテンプレート<,,,,,,,>のような構造を作るより良いと思います。そんな「階級制度」を構築し終える前に、脳が壊れてしまうのです。 Alexey Navoykov 2019.01.25 14:18 #69 Ilya Malev:クラスのテンプレート<,,,,,,,>のような構造を作るより良いと思います。そんな「階級制度」を構築し終える前に、脳が壊れてしまうのです。 コンパイラで頭を悩ませるよりも、自分のプログラムが正しく動作することが保証され、他の何かではなく、動作するメソッドが呼び出されることを確認する方が先決です。 Ilya Malev 2019.01.25 14:22 #70 Alexey Navoykov: コンパイラで頭を悩ませるよりも、自分のプログラムが正しく動作することが保証され、おかしなことではなく、動作するメソッドが呼び出されることを確認する方が先決です。もし、全体がシンプルなベースクラスを持っていて、それがほとんどどこにでも登場し、その後ダイナミックキャストが行われるなら、うまくいくかもしれません)。 1234567891011121314...28 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私見ですが、悪いことばかりではありません。C#の基本的なコアインターフェースはそれほど多くなく、そのメソッドを1つの基本的なスーパークラスに還元し、必要な人に継承させることができると私は考えています。
必要なものを継承する」とはどういう意味ですか? クラス全体ではなく、その一部を継承するのですか?) そのような機能には詳しくないのですが。
そうではなく、多くの仮想関数を 定義し、必要に応じて継承元でオーバーロードするという意味です。
そうではなく、多くの仮想関数を 定義し、必要に応じて継承元でオーバーロードするという意味です。
それは完全なカオスと制御不能です。 インターフェースは、「どうしても」ではなく、「必ず」実装しなければ ならない抽象的なメソッドを定義しています。また、この方法では、どこかのメソッドをオーバーロードし忘れた場合、プログラムは何事もなかったかのようにコンパイルされますが、必要なメソッドの代わりにプログラムが呼び出されることになります。
空白ではなく、「未実装」の例外です。C#では、そこらじゅうにある。
...どこかのメソッドをオーバーロードし忘れると、プログラムは何事もなかったかのようにコンパイルされますが、必要なメソッドの代わりに空白のメソッドが呼び出されます。 これは正常です...。
ちなみにMQLではそうなっています;(
空白ではなく、「未実装」の例外です。C#でも、あちこちにあるようです。
ちなみにMQLではそうなっています;(
このようなバグはコンパイル時に捕らえることができる(そして捕らえるべき)のですが、あなたは実行時にバグを捕らえようと提案されています。
クラスのテンプレート<,,,,,,,>のような構造を作るより良いと思います。そんな「階級制度」を構築し終える前に、脳が壊れてしまうのです。
クラスのテンプレート<,,,,,,,>のような構造を作るより良いと思います。そんな「階級制度」を構築し終える前に、脳が壊れてしまうのです。
コンパイラで頭を悩ませるよりも、自分のプログラムが正しく動作することが保証され、おかしなことではなく、動作するメソッドが呼び出されることを確認する方が先決です。
もし、全体がシンプルなベースクラスを持っていて、それがほとんどどこにでも登場し、その後ダイナミックキャストが行われるなら、うまくいくかもしれません)。