Est-il un Rubis équivalent pour la typeof mot réservé en C#?
J'ai une méthode C# que j'ai besoin d'appeler à partir d'un morceau de Rubis qui nécessite un Système.Type d'argument. Est-il un Rubis équivalent à typeof en C#? L'appel à ressembler à quelque chose comme ça en C# ...
var CustomClasInstance = Conteneur.GetInstance(typeof(ICustomClass))
Vous devez vous connecter pour publier un commentaire.
En plus de la vérification de l'Objet#classe (la méthode d'instance de la classe sur l'Objet aka classe de Base), vous pourriez
il s'agira de vérifier pour voir si s a une Chose n'importe où dans son ascendance.
Soit
Object.class
ouObject.type
devrait faire ce que vous avez besoin.Aussi, les deux méthodes
Object.is_a?
etObject.instance_of?
peut être utilisé. Cependant, ils ne sont pas identiques à 100%. La déclarationobj.instance_of?(myClass)
retournera true seulement si l'objetobj
a été créé comme un objet de typemyClass
. À l'aide deobj.is_a?(myClass)
renvoie true si l'objetobj
est de classemyClass
, est d'une classe qui a hérité demyClass
, ou a le modulemyClass
inclus.Par exemple:
Depuis votre méthode C# nécessite un type de données spécifique, je vous conseille d'utiliser
Object.instance_of?
.Une référence sur la façon d'identifier les types de variables en Ruby, voir
http://www.techotopia.com/index.php/Understanding_Ruby_Variables#Identifying_a_Ruby_Variable_Type
Si vous avez variable nommée
s
, vous pouvez récupérer le type de celui-ci en invoquant