Albo Object.class
lub Object.type
powinien robić to, co trzeba. Można również użyć dwóch metod: Object.is_a?
i . Jednak nie są one w 100% identyczne. Instrukcja obj.instance_of?(myClass)
zwróci true tylko wtedy, gdy obiekt obj
został utworzony jako obiekt typu myClass
. Zastosowanie wartości obj.is_a?(myClass)
zwróci wartość true, jeśli obiekt obj
ma klasę myClass
, jest klasą odziedziczoną po myClass
lub zawiera moduł myClass
.
Na przykład:
x = 1
x.class => Fixnum
x.instance_of? Integer => false
x.instance_of? Numeric => false
x.instance_of? Fixnum => true
x.is_a? Integer => true
x.is_a? Numeric => true
x.is_a? Fixnum => true
Ponieważ metoda C# wymaga bardzo specyficznego typu danych, polecam korzystania Object.instance_of?
.
Wygląda na to, że s.Class jest bardziej podobny do CustomClassInstance.GetType() i nie bardzo przypomina typof (CustomClass) ... czy się mylę? – Chris