Skip to content

Gendarme.Rules.Design.ListsAreStronglyTypedRule(git)

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

ListsAreStronglyTypedRule

Assembly: Gendarme.Rules.Design
Version: git

Description

This rule checks that types which implements System.Collections.IList interface have strongly typed versions of IList.Item, IList.Add, IList.Contains, IList.IndexOf, IList.Insert and IList.Remove. This is needed to avoid casting every time these members are used.

Examples

Bad example:

class Bad : IList {
    public int Add (object value)
    {
        // method code
    }
    // other IList methods and properties without their strongly typed versions
}

Good example:

class Good : Ilist {
    public int Add (object value)
    {
        // method code
    }
    public int Add (Exception value)
    {
        return ((IList)this).Add ((object)value);
    }
    // other IList methods and properties with their strongly typed versions
}

Source code

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

Clone this wiki locally