2012-02-11 24 views
1

我正在處理一個應用程序,該應用程序使用列表來處理來自用戶的以前的猜測。以下是(私人)列表和用於訪問列表的屬性。問題只使用一個吸氣劑和c#中的問題列表#

爲了防止隱私泄漏,我使用了ReadOnlyCollection,這也是我在屬性中只有一個getter的原因(元素直接添加到列表中,而不是通過屬性)。

現在來解決問題。下面的代碼生成錯誤消息:

  1. TheNameOfTheClass.PreviousGuesses.get必須聲明主體,因爲它未標記抽象或外部量。自動實現的屬性必須同時定義get和set訪問器。
  2. 不能將類型'System.Collections.Generic.List'轉換爲'System.Collections.ObjectModel.ReadOnlyCollection。

這怎麼解決?提前致謝!

private List<int> _previousGuesses; 

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

編輯:好的,所以問題nr 2解決了(謝謝Zortkun!)。第一個問題呢,我不能只用吸氣劑,任何想法?

+2

ReadOnlyCollection有一個構造函數,如果我沒有記錯,那要你的列表。 '返回新的ReadOnlyCollection(_previousGuesses);'嘗試重新編譯,看看你的其他錯誤消失。 – GGulati 2012-02-11 22:49:06

+0

您需要在嘗試從方法調用訪問它之前初始化集合,Getter只是一個方法調用。 – Lloyd 2012-02-11 23:55:33

回答

7

我想是不是發佈在谷歌上彈出的第一件事,但如何呢?

return _previousGuesses.AsReadOnly(); 

here

+0

太好了,解決了這個問題! :) – holyredbeard 2012-02-11 22:57:28

+0

我認爲第一個問題與第二個問題有關。 @JasonCraig能否詳細說明第二個(如果你有它/記得)? – 2012-02-22 17:47:33

+0

我的意思是第一個。 :d – 2012-02-23 12:14:07