2010-10-12 19 views
0

Hei, j'ai une méthode d'une classe dans une bibliothèque personnalisée que je voudrais restreindre pour être appelée seulement sur une page spécifique, d'une certaine manière en utilisant méthodes conditionnelles. Le problème est que j'ai besoin d'une valeur de retour et que les méthodes conditionnelles n'autorisent pas le retour autre que les paramètres void ou 'out'. L'utilisation d'une méthode void fonctionne correctement, mais existe-t-il un moyen d'accomplir ce type de comportement conditionnel et de renvoyer une valeur? Bien sûr à la fin je pourrais gérer comme il est montré ci-dessous, mais je suis curieux de connaître d'autres options.Restreindre un appel de méthode à une page spécifique dans une application .net (en C#)

Mon code maintenant:

dans la bibliothèque:

public bool MyResult {get; private set;} 

[Conditional("condition")] 
public void MyConditionalMethod(...){ 
    this.MyResult = DoSomethingElse(); 
} 

dans la page:

#define condition 
bla bla bla 

Merci!

+0

Etes-vous sûr que les méthodes conditionnelles sont ce que vous cherchez? Cela semble sans rapport avec votre souhait de * restreindre (la méthode) à ne s'appeler que sur une page spécifique *. Les symboles du préprocesseur sont spécifiques à la construction et non spécifiques à la page. – bzlm

+0

Après y avoir réfléchi un bon moment, je me suis rendu compte que cela ne fonctionnerait pas vraiment en utilisant des méthodes conditionnelles ... Je dois trouver une autre solution. Je voulais éviter qu'une méthode soit appelée en dehors d'un certain contexte ... ok, peut-être que je vais créer une autre question expliquant mieux ce que je veux réaliser. – Richard

Répondre

0

Depuis le C# Spec, chapter 17, verse 4.2 dit explicitement:

La méthode conditionnelle doit avoir un type de retour de vide.

Je suppose que ce n'est pas possible avec C# dans cet univers.

Encore.