2014-08-28 1 views
1

Je voudrais définir un enum "à la volée" et l'utiliser comme un type de paramètre pour appeler une méthode. Est-ce que quelque chose comme ça est possible? Fondamentalement, je ne veux pas avoir à déclarer un niveau de classe enum chaque fois que j'ai une méthode qui en a besoin.Création d'une "énumération anonyme" dans une méthode (en particulier dans VB.NET)

Voilà comment j'envisager de l'utiliser:

Function GetNumberOfLegs(ByVal ForAnimalType As <here's where I define my anonymous enum>) As Integer 
    Select Case ForAnimalType 
     Case Cat 
      Return 4 
     Case Human 
      Return 2 
    End Select 
End Function 

Il semble raisonnable que cela devrait être possible, étant donné que vous pouvez définir des types anonymes et utiliser d'autres choses connexes comme des expressions lambda.

+0

Lorsque vous avez une méthode qui nécessite un 'enum', vous ne pouvez pas définir votre propre - vous devez utiliser le' enum' que la fonction utilise. Ou je ne reçois pas quelque chose. Pourriez-vous illustrer votre problème avec un exemple de code? – BartoszKP

+0

Il serait facile de répondre si vous pouvez dire ce que vous essayez d'atteindre. Cela ressemble à un [XYProblem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) –

+0

@BartoszKP - Je suis celui qui crée les méthodes qui utilisent les énumérations . Je cherche essentiellement la possibilité de définir une énumération dans la portée de la méthode afin que, quand quelque chose appelle la méthode, elle puisse simplement fournir une valeur avec ce type enum. –

Répondre

0

Non, fondamentalement. Eh bien, vous pouvez utiliser un int et quelques const s - mais au moment où vous avez fait cela, vous pourriez aussi bien avoir utilisé un enum (plus il sera beaucoup plus facile de travailler avec).

+0

Merci Marc. J'ai mis à jour ma question pour clarifier ce que je cherche. Si la réponse est toujours "non", je l'accepterai. –

+0

@roryap en effet, cela n'existe pas. Il vaut la peine de demander, mais non. –

Questions connexes