How is it possible for ReadOnlyCollection to implement IList? The latter requires implementation of the Add method, and the ReadOnlyCollection does not implement this. However, ReadOnlyCollection is concrete and can be instantiated...
Edit
The following code will not compile on my machine:
static void Main(string[] args)
{
List<string> people = new List<string>(){
"Sidney",
"Jim",
"Bob"};
ReadOnlyCollection<string> readOnlyPeople = new ReadOnlyCollection<string>(people);
readOnlyPeople.Add("Frank");
}
The call to "Add" in the last statement is now underlined in blue in Visual Studio 2010.