2009-10-04 5 views
0

Comment appeler une méthode générique (.NET 3.5 SP1) à partir de IronRuby v0.9? Essayer de faire quelque chose comme obj.method(:method_name).of(String).call semble ne pas fonctionner comme "de" est une méthode inconnue.Appel d'une méthode générique à partir de IronRuby

Merci beaucoup

Répondre

1

Il fonctionne pour moi (j'utilise 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

Vous avez raison, cela semble être un problème avec la version v0.9 (http://dlr.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=20378) . Si je compile moi-même la version 0.9.1, cela fonctionne également pour moi. – JPW

+0

La version binaire 0.9.1 est maintenant disponible, donc vous n'avez pas besoin de la compiler vous-même –

2

Vous pouvez également utiliser des indexeurs de tableaux pour passer des arguments génériques aux méthodes, et vous pouvez aussi exécuter un proc avec des indexeurs de tableaux, donc l'exemple de Shay peut ressembler à cela aussi:

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

Cela ne fonctionne pas pour moi Jimmy. obj.method (: test) [String] renvoie un objet String - 'String', donc le fait de le passer ["test"] entraîne une exception. –

Questions connexes