Поскольку System :: Object [] на самом деле не является типом массива. t.is_a? (System :: DateTime []) также вернет true.
Я думаю, что здесь происходит то, что IronRuby рассматривает квадратные скобки как пустые индикаторы универсального типа (поскольку создание универсального типа выполняется с тем же синтаксисом, например, System :: Collections :: Generic :: Список [String] .new ).
Правильный способ сделать это так:
IronRuby 0.9.3.0 on .NET 2.0.50727.4927
Copyright (c) Microsoft Corporation. All rights reserved.
>>> t = System::DateTime.new
=> 01/01/0001 00:00:00
>>> t.is_a? System::Array.of(System::Object)
=> false