A nested type is a type argument that is also a generic type. Calling a method with such a nested type argument requires complicated and confusing code. It should be avoided as much as possible.

Noncompliant Code Example

using System;
using System.Collections.Generic;

namespace MyLibrary
{
  public class Foo
  {
    public void DoSomething(ICollection<ICollection<int>> outerCollect) // Noncompliant
    {
    }
  }
}