Basically, IList<>
can by implemented by any class (one of which is List<>
). Therefore, using IList<>
for parameters and properties makes the coupling more loose, which is usually a good thing, since you are not restricted to one specific implementation.