2009-10-04 118 views
0

如何從IronRuby v0.9調用泛型方法(.NET 3.5 SP1)? 試圖做一些obj.method(:method_name).of(String).call似乎不工作作爲「的」是一個未知的方法。從IronRuby調用泛型方法

非常感謝

回答

1

它爲我(我使用的是0.9.1):

的IronRuby:

obj = ClassLibrary1::Class1.new 
obj.method(:test).of(String).call("test") 

C#:

namespace ClassLibrary1 
{ 
    public class Class1 
    { 
     public string Test<T>(T param) 
     { 
      return param.ToString(); 
     } 
    } 
} 
+0

你是對的,這似乎是與V0.9版本的問題(http://dlr.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=20378) 。 如果我自己編譯0.9.1版本,它也適用於我。 – JPW 2009-10-06 11:20:54

+0

0.9.1二進制版本現在已經出來,所以你不需要自己編譯它 – 2009-10-08 07:28:33

2

你也可以使用數組索引器將通用參數傳遞給方法,並且還可以使用數組索引器執行proc,以便Shay的示例可以這個樣子太:

obj.method(:test)[String]["test"] 
+0

這對我不適用Jimmy。 obj.method(:test)[String]返回一個String對象 - 'String',因此向其傳遞[「test」]會導致異常。 – 2009-10-08 08:27:43