Либо Object.class
, либо Object.type
должны делать то, что вам нужно.
Также можно использовать два метода Object.is_a?
и Object.instance_of?
. Однако они не идентичны на 100%. Оператор obj.instance_of?(myClass)
вернет true, только если объект obj
был создан как объект типа myClass
. Использование obj.is_a?(myClass)
вернет true, если объект obj
относится к классу myClass
, принадлежит к классу, унаследованному от myClass
, или в него включен модуль myClass
.
Например:
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
Поскольку для вашего метода C # требуется очень специфический тип данных, я бы рекомендовал использовать Object.instance_of?
.