Quelles approches les gens prennent (le cas échéant) dans la gestion guard clause explosion dans vos classes? Par exemple:Refactoring Guard Clauses
public void SomeMethod<T>(string var1, IEnumerable<T> items, int count)
{
if (string.IsNullOrEmpty(var1))
{
throw new ArgumentNullException("var1");
}
if (items == null)
{
throw new ArgumentNullException("items");
}
if (count < 1)
{
throw new ArgumentOutOfRangeException("count");
}
... etc ....
}
Dans le projet que je travaille actuellement il y a beaucoup de classes qui ont un ensemble similaire de clauses de garde sur les méthodes publiques. Je connais les contrats de code .NET 4.0, mais ce n'est pas une option pour notre équipe pour le moment.
Je venais de poster la même chose. Le seul problème est qu'il met cette méthode en haut de la trace de la pile par rapport à la méthode d'origine en haut, pas que c'est énorme. Ce modèle pourrait évidemment être utilisé pour différents types de vérifier une gamme de valeurs, etc ... –
Ouais, c'est le seul problème que j'ai jamais eu avec elle.Bien qu'il soit assez facile de trouver la méthode d'appel originale. –
Ceci est essentiellement la même chose que les classes qui imitent les contrats de code. –