【问题标题】:How to invoke an overloaded generic methods in IronRuby?如何在 IronRuby 中调用重载的泛型方法?
【发布时间】:2009-05-21 22:30:43
【问题描述】:

如何在 IronRuby 中调用重载的泛型方法?

我有一个具有以下方法的 .NET 类。 (注意方法是静态的)

Factory.cs
----
public static T CreateService<T>()
public static T CreateService<T>(string serviceName)

ironruby_sample.rb
----
service = Factory.create_service[ISomeService]

=> 产生错误“错误参数”

顺便说一句,我使用的是 IronRuby 0.5。

【问题讨论】:

    标签: generics methods overloading ironruby


    【解决方案1】:
    Factory.method(:create_service).of(System::String).call(serviceName)
    

    您不必指定参数 IronRuby 会自动选择重载。 您必须获取该方法,然后给它(a)类型参数。接下来将参数传递给调用方法

    【讨论】:

    • 谢谢。 . .仍在了解 IronRuby 如何处理 c# 接口,但我现在遇到了不同的错误 :)。
    • IronRuby 将接口视为模块。所以你将它们包含在你的类中,但要实现它们,你还必须在接口上实现(尽管是空的)其他方法。根据 Ruby 约定,它们都必须是蛇形,因此 ToString() 变为 to_string
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多