What are the code convention for parameters/return values (collections)
<p>I had a little discussion with a friend about the usage of collections in return/input values of a method. He told me that we have to use
- the most derived type for return values.
- the least derived type for input parameters.</p>

<p>So, it means that, for example, a method has to get a ReadOnlyCollection as parameter, and as return a List.</p>

<p>Moreover, he said that we must not use List or Dictionary in publics API, and that we have to use, instead Collection, ReadOnlyCollection, ... So, in the case where a method is public, its parameters and its return values must be Collection, ReadOnlyCollection, ...</p>

<p>Is it right ?</p>
