Skip to content

Gendarme.Rules.Design.Generic.DoNotExposeNestedGenericSignaturesRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

DoNotExposeNestedGenericSignaturesRule

Assembly: Gendarme.Rules.Design.Generic
Version: git

Description

This rule will fire if an externally visible method has a parameter or return type whose type is a generic type which contains a generic type. For example, List<List>. Such types are hard to construct and should be avoided because simpler alternatives generally exist. Since some language, like C#, have direct support for nullable types, i.e. [[System.Nullable<T>|http://msdn.microsoft.com/library/System.Nullable.aspx]] this specific case is ignored by the rule.

Examples

Bad example:

public class Generic<T> {
    public void Process (KeyValuePair<T, ICollection<int>> value)
    {
    }
}

Good example:

public class Generic<T> {
    public void Process (KeyValuePair<T, int[]> value)
    {
    }
}

Notes

  • This rule applies only to assemblies targeting .NET 2.0 and later.

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally