un constructeur en tant que délégué - est-il possible en C#?

J'ai une classe comme ci-dessous:

class Foo
{
  public Foo(int x) { ... }
}

et j'ai besoin de passer à une certaine méthode un délégué comme ceci:

delegate Foo FooGenerator(int x);

Est-il possible de passer le constructeur directement comme un FooGenerator valeur, sans avoir à taper:

delegate(int x) { return new Foo(x); }

?

EDIT: Pour mon usage personnel, la question se réfère .NET 2.0, mais conseils/réponses pour la 3.0+ sont la bienvenue.

  • Question intéressante. Je crois que les constructeurs sont effectivement des méthodes d'aussi loin que le CLR est concerné, mais je ne connais pas la syntaxe.
  • Je suis intéressé: pourquoi voudriez-vous faire cela?
  • Je soupçonne que la réponse est non mais.
  • Blé: en plus de détails: 1) j'ai eu des classes de Deriv1 " et "Deriv2' étendre 'Foo', 2) j'ai eu une méthode 'SomeLogic ()" qui a parfois besoin de créer un 'Foo'objet dérivé basé sur 'x', 3) et je voulais décider si cela doit être "Deriv1" ou "Deriv2' lors de l'appel de la méthode. Maintenant que je pense à cela, je pourrais envisager d'utiliser une méthode de modèle... mais pour que cela soit une réponse, je devrais plutôt ouvrir une autre question 🙂 +1 & bravo à vous en tout cas 🙂
  • (a répondu à un commentaire)
InformationsquelleAutor akavel | 2009-10-21