Acessador de propriedades "Somente leitura" em C #

Tenho a seguinte classe:

class SampleClass
{
   private ArrayList mMyList;

   SampleClass()
   {
       // Initialize mMyList
   }

   public ArrayList MyList
   {
       get { return mMyList;}
   }
}

Eu quero que os usuários obtenham o mMyList, e é por isso que expus o "get" por meio de uma propriedade, mas não quero que as alterações sejam feitas no objeto (por exemplo, MyList.Add (new Class ());) para fazer voltando para a minha class

Acho que posso devolver uma cópia do objeto, mas isso pode ser lento e estou procurando uma maneira que forneça um erro em tempo de compilação informando ao usuário que eles não esperam poder modificar o valor retornado de a propriedade

Isso é possível

questionAnswers(8)

yourAnswerToTheQuestion