2009-11-12 5 views
0

1) Lorsque jesyntaxe méthode générique clarification

Static void Sample<T>(T a,T b) 

Est-ce que la déclaration échantillon que tous les paramètres appliquer doivent être de type T?

2) Est-ce que la déclaration Static void Sample(T a,T b) n'est pas une méthode générique à moins que je ne spécifie Sample<T>?

Répondre

1
  1. En effet, dans votre exemple, les deux paramètres sont de type T doivent donc ..um .. être de type T. Vous pouvez bien sûr déclarer une méthode qui utilise des types différents.

    Exemple static void <T> (T a, UnType b)

  2. Oui, ce n'est pas générique, sauf si vous spécifiez échantillon <T> (T a, T b)

1

1) Oui

2) Oui, ceci est une syntaxe non valide pour une méthode générique

EDIT: Plus presque instantanée :) réponse

+0

:) bien sûr, mon titre est la clarification et non l'explication. – user196546

1
  1. Oui, la déclaration impose que tous les paramètres déclarés doivent être de type T.

  2. static void Sample(T a, T b) échouera à compiler (sauf si vous avez un tapez T) car ce n'est pas une déclaration générique. Vous avez besoin de la déclaration pour être un générique.

5

1) Non, Static void Sample<T>(T a,T b) n'applique pas tous les paramètres à être de type T. Vous pouvez avoir d'autres paramètres dans les arguments de méthode aussi. EDIT: - Vous pouvez avoir Sample (T a, int b, chaîne s) (si c'est ce que vous voulez dire)

2) Oui, Static void Sample(T a,T b) est non-générique et le compilateur lancera une exception à propos du type T (si vous ne le faites pas) Je n'ai pas un T classé)