投稿日 | 2024/04/26(Fri) 03:12:00 |
---|---|
投稿者 | ゆうと |
参照先 |
こんにちは、お世話になっております。
動作等を再現させて検討しましたが
string型とobject[]型のオーバロードの手順決定できない挙動については
仕様とさせてください。
(エラーとならずにどちらかが実行されてしまう挙動はバグです)
理由としては、
整数の配列を、C#の引数に渡す際に、string型でもobject[]型でも、値変換が必要となります。
このケースのように、助詞が一致する場合には、どちらの引数も値変換が必要な点は同じですので、どちら一方に決めることができません。
同じ配列ならobject[]型が選択されることを期待しますが、要素の型を整数からobject型に変換する必要があるため「変換が必要な手順呼び出し」と判断されます。
対策としてはC#側でint[]の値に対するオーバロードを定義するか、次のように「←」によるキャストを指定してください。この場合は正しく手順が決まります。
----
【A:整数の配列】={1,2,3,4,5,6}
(A←配列)の種類名を表示
----
参考にしてください。
- WebForum -