Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 17968|Répondre: 0

[Source] C# où l’analyse d’utilisation

[Copié le lien]
Publié sur 12/07/2016 11:35:43 | | |

La clause where est utilisée pour spécifier des contraintes de type pouvant servir de variables pour les paramètres de type définis dans des déclarations génériques.
1. Contraintes d’interface.
Par exemple, vous pouvez déclarer une classe générique MyGenericClass, afin que le paramètre de type T puisse implémenter<T> l’interface IComparable :

classe publique<T> MyGenericClass où T :IComparable { }

2. Contrainte de classe de base : Indique qu’un type doit utiliser la classe spécifiée comme classe de base (ou la classe elle-même) pour être utilisé comme paramètre de type pour ce type générique.
Une fois une telle contrainte utilisée, elle doit apparaître avant toutes les autres contraintes concernant le type de paramètre.
classe MyClassy<T, U>
où T : classe
où U : struct
{
}

La clause 3.where peut également inclure des contraintes de constructeur.
Vous pouvez utiliser le nouvel opérateur pour créer une instance d’un paramètre de type ; Mais l’argument de type doit être contraint par la contrainte du constructeur new() pour cela. La contrainte new() informe le compilateur que tout type d’argument fourni doit avoir un constructeur accessible sans paramètre (ou par défaut). Par exemple :
classe publique <T> MyGenericClass où T : IComparable, new()
{
La ligne suivante n’est pas possible sans nouvelle contrainte :
Élément T = nouveau T() ;
}
La contrainte new() apparaît à la fin de la clause where.

4. Pour plusieurs paramètres de type, chaque paramètre de type utilise une clause where,
Par exemple:
interface MyI { }
Dictionnaire de la classe < TKey, TVal>
où TKey : Iparable, IEnumerable
où TVal : MyI
{
public void Ajouter (clé TKey, TVal val)
{
}
}

5. Vous pouvez également attacher des contraintes aux paramètres de type de méthodes génériques, tels que :

public bool <T>MyMethod(T t) où T : IMyInterface { }

Notez que la syntaxe pour décrire les contraintes des paramètres de type est la même pour les délégués et les méthodes :

déléguer T MonDélégué<T>() où T : new()





Générique où

Le Générique Where peut qualifier les paramètres de type. Il existe plusieurs façons de faire.

·où T : struct restreint le paramètre de type T doit hériter du System.ValueType.

·où la classe T : restreint le type Le paramètre T doit être un type de référence, c’est-à-dire qu’il ne peut pas être hérité du System.ValueType.

où T : new() restreint le paramètre de type T doit avoir un constructeur par défaut

·où T : NameOfClass restreint le paramètre de type T doit hériter d’une classe ou implémenter une interface.

Ces qualificatifs peuvent être combinés, tels que : public class Point où T : classe, IComparable, new()




Précédent:cours d’aide c# NHibernate
Prochain:c# http écoute les threads avec HttpListener
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com