2009-07-07 11 views
3

Booでは、string[] urlsというパラメータを受け取るメソッドをオーバーライドしています。型推論は何らかの理由でベースクラスにマッチしないので、パラメータの型を明示的に指定する必要があります。Booでは、どのように配列パラメータを指定しますか?

class MyClass: MyBase 
    override method(urls as Array[of (string)]) 
    dostuff() 

これは正しいBoo構文ではないことがわかります。私は配列パラメータを取るメソッドをオーバーライドしていると指定する正しい方法は何ですか?

通常、私はIEnumerableを期待していますが、Rhino.DSLの一部である他の誰かの基底クラスをオーバーライドしています。

編集に追加:私の問題は配列宣言の構文にのみ関連していることが判明しました。私の本当の問題は、プロジェクトで参照されているBooアセンブリの2つの異なるバージョンでした。アラウンド型

答えて

3

カッコは、その型の配列を表します

class MyClass : MyBase 
    override def method(urls as (string)): 
    dostuff() 
+0

おかげで、私は最終的に私が掲示そのドキュメントのわずか数秒後に発見されました。上記の単純なケースでは、明らかに機能します。しかし、奇妙なことに、私はそれが好きではないことを発見しました: ほとんどの任意の型がうまくいきましたが、defメソッド(barはBoo.Lang.Compiler.CompilerPipeline、URLは(文字列)として)をオーバーライドします... 特定の種類のオブジェクトの周りによく知られている問題がありますか、または私はより多くの狩猟をする必要がありますか? – JasonTrue

+0

'Virtuoso.QA.VatDsl.Features.MyClass1.DoStuff(Boo.Lang.Compiler.CompilerPipeline、(string))':オーバーライドする適切なメソッドが見つかりません。互換性のない署名で同じ名前のメソッドが見つかりました。 (BCE0060) - C:\ virtuoso \ sl \ QAMain \ Virtuoso \ Virtuoso.QA.Vat \ Virtuoso.QA.VatDslSupport \ TestDSLEngine.boo:9,18 – JasonTrue

+0

@JasonTrue:私が知っているものではない。つまり、私はBooのエキスパートではありませんが、それはプログラミング言語にとっては変なことですので、パラメータ定義を調べるのではなく、別の場所で問題を研究します。そのパラメータをオーバーライドするメソッドがありますか? –

関連する問題