3

私は最初にこの質問をしましたが、答えを見つける際に、継承されたメソッドの戻り値の型の共分散に対する C# のサポートの欠如が私の元の問題であることがわかりました。それを発見した後、私はどの言語がこの機能をサポートしているのか知りたくなりました。

一番多く名前を挙げられる方の回答を受け付けます。

編集:ジョン・ミリキンは、多くの動的言語がこれをサポートしていることを正しく指摘しました。明確にするために:

静的/強く型付けされた言語のみを探しています。

4

7 に答える 7

4
  • C++
  • ジャワ
  • REALbasic
  • エッフェル
  • サザー
  • モジュラ-3
于 2008-09-06T07:31:04.310 に答える
2

もちろん、あらゆる動的言語 -- Python、Ruby、Smalltalk、Javascript など。

于 2008-09-05T22:45:40.313 に答える
0

IvanHamiltonとMatNoguchiが指摘しているように、C++はこの機能をサポートしています。ただし、MSVC 7.Xから9.X(およびおそらく6)の一部のベースから継承するテンプレートクラスでは、共変の戻り型が壊れていることに注意してください。エラーC2555が発生します。

于 2008-09-16T08:54:20.160 に答える
0

Java は 1.5 でこれに対するサポートを追加しました。以前のバージョンではコンパイルできません。

于 2008-09-08T12:32:23.073 に答える
0

基本的に私が求めているのは、私がここでやろうとしていることをどの言語がサポートしているかです。

C# では、メソッドget()set()メソッドに異なるデータ型を指定できますか? Leg get_leg()そうでない場合は、それらを実際の関数と関数に分割しset_leg(DogLeg)ます。そうしないと、次の 2 つのいずれかが発生します。1) の過大get_leg()指定 2) の過小指定set_leg()

于 2008-09-05T23:08:26.237 に答える
0

C++ は、共変の戻り値の型をサポートしています。

于 2008-09-05T23:13:35.537 に答える
-1

しかし、私はそれが私が求めているものだと思います..それともそうですか?

率直に言って、あなたが何を求めているのかわかりません。Java は明らかに C# と同じ戻り値の型の共分散をサポートしているため、探しているものが C# に欠けている場合は、Java にも欠けています。

于 2008-09-05T22:58:46.960 に答える