Проблема при использовании только геттера и проблема с List в c # - PullRequest
1 голос
/ 12 февраля 2012

Я работаю над приложением, которое использует список для обработки предыдущих предположений пользователя.Ниже приведен список (приватный) и свойство для доступа к списку.

Чтобы предотвратить утечку конфиденциальности, я использую коллекцию ReadOnlyCollection, которая также является причиной того, что у меня есть только геттер в свойстве (добавлены элементывнутри класса непосредственно в список, а не через свойство).

Теперь к проблеме.Код ниже генерирует сообщение об ошибке:

  1. TheNameOfTheClass.PreviousGuesses.get должен объявить тело, потому что оно не помечено как абстрактное или внешнее.Автоматически реализуемые свойства должны определять как методы получения, так и настройки доступа.
  2. Невозможно скрыть преобразование типа 'System.Collections.Generic.List' в 'System.Collections.ObjectModel.ReadOnlyCollection.

Какэто можно решить?Заранее спасибо!

private List<int> _previousGuesses;

public ReadOnlyCollection<int> PreviousGuesses {
    get {
        return _previousGuesses;
    }
}

РЕДАКТИРОВАТЬ: Хорошо, так что проблема № 2 решена (спасибо Zortkun!).Как насчет первой проблемы, что я не могу использовать только геттер, какие-либо идеи?

1 Ответ

7 голосов
/ 12 февраля 2012

Я полагаю, что благосклонность заключается не в том, чтобы опубликовать первое, что появляется в Google, а как на счет этого?

   return _previousGuesses.AsReadOnly();

С здесь

...