Osztályok
Az osztály a legfőbb egymásbaágyazható struktúra a CLR számára és az IronRuby mint Ruby osztályokat kezeli.
Egyszerü példa:
p = Person.new("Jimmy")
#=> Models.Person
Lehetőség van tetszőleges, .NET keretrendszer által biztosított osztály használatára az IronRuby-ban.
dict = System::Collections::Generic::Dictionary[String, Array].new
#=> System.Collections.Generic.Dictionary`2[IronRuby.Builtins.MutableString,IronRuby.Builtins.RubyArray]
dict['foo'] = [1,2,3]
#=> [1, 2, 3]
dict[23] = '34'
#:0: can't convert String into Array (TypeError)
#
dict[23] = [4,5,6]
#:0: can't convert Fixnum into String (TypeError)
#
dict['bar'] = [4,5,6]
#=> [4, 5, 6]
Öröklődés
Csakúgy, mint a Ruby osztályoknál, a .NET osztályok is lehetnek al-osztályozzák IronRuby-ban.
class MyPerson < Models::Person
attr_reader :age
def self.new(name, age)
instance = super(name)
instance.instance_variable_set(:"@age", age)
instance
end
end
#=> nil
p = MyPerson.new('jimmy', 25)
#=>