Non, l'instruction "if" n'est en rien une méthode en C#. Examiner les façons dont il n'est pas comme une méthode:
- Les entités dans le bloc contenant sont dans la portée dans le corps d'un "si". Mais une méthode ne permet pas d'obtenir n'importe quel accès à la liaison de l'environnement de son visiteur.
- Dans de nombreuses langues, les méthodes sont les membres de quelque chose-un type, probablement. Les déclarations ne sont pas membres.
- Dans les langues avec la première classe de méthodes, les méthodes peuvent être passés en tant que données. (En C#, en les convertissant aux délégués.) "si les" déclarations ne sont pas de première classe.
- et ainsi de suite. Les différences sont nombreuses.
Maintenant, il est logique de penser à certaines choses, comme une sorte de méthode, pas de "si" des déclarations. De nombreux opérateurs, par exemple, sont un peu comme des méthodes. Il y a très peu de différence conceptuelle entre:
decimal x = y + z;
et
decimal x = Add(y, z);
Et en fait, si vous démontez un plus de deux décimales, en C#, vous verrez que le code généré en fait est un appel de méthode.
Certains opérateurs ont des caractéristiques particulières qui font qu'il est difficile de les caractériser comme des méthodes:
bool x = Y() && Z();
est différente de
bool x = Et Y(), Z());
dans une langue qui a hâte d'évaluation des arguments de méthode; dans le premier, Z() n'est pas évaluée si Y() est faux. Dans le second, les deux sont évaluées.
Votre création de "si" méthode plutôt soulève la question; la mise en œuvre est plus complexe qu'une instruction "if". Dire que vous pouvez émuler "si" avec un interrupteur, c'est comme dire que vous pouvez émuler un vélo, une moto, en remplacement de quelque chose de simple avec quelque chose de beaucoup plus complexe, n'est pas convaincante. Il serait plus raisonnable de dire qu'un interrupteur est en fait un caprice "si".