2011-02-28 85 views
3

我試圖從類返回的對象列表,並獲得以下錯誤:C# - 無法返回列表

Error 1 Inconsistent accessibility: property type 'System.Collections.Generic.List<EventXmlExtract.Attribute>' is less accessible than property 'EventXmlExtract.EventExtract.AttributeList' C:\Documents and Settings\eyalk\My Documents\Visual Studio 2010\Projects\Blobs\EventExtractDll\EventExtract.cs 14 32 EventExtractDll

我的代碼試圖返回_attributeList:

public class EventExtract 
{ 
    private string _type; 
    private int _type_id; 
    private List<Attribute> _attributeList = new List<Attribute>(); 

    internal List<Attribute> AttributeList 
    { 
     get { return _attributeList; } 
     set { _attributeList = value; } 
    } 
} 

什麼問題是什麼?和我如何檢索列表?

+2

什麼是類'Attribute'?我強烈懷疑這不是System.Attribute類 – SWeko 2011-02-28 13:30:56

+0

它是自定義類 – kaycee 2011-02-28 13:32:37

+0

那麼就有問題了。使該屬性類至少爲'內部',代碼將編譯得很好 – yas4891 2011-02-28 13:35:30

回答

7

使類Attribute公開或內部。

您不能返回類爲私有對象的列表,因爲調用代碼無法訪問這些對象。

或者將AttributeList限制爲Attribute類,如果這是您想要的方式。

+0

除非嵌套,否則類只能是公共或內部的。 – SWeko 2011-02-28 13:40:29

0

我認爲問題在於您已聲明財產爲private。嘗試使它成爲protectedpublic

+0

受保護和公開聲明的同一錯誤 – kaycee 2011-02-28 13:33:20

+1

該屬性未聲明爲「private」,而是「internal」。問題不在於該屬性太受限制,而是它返回的類型太受限制。 – Guffa 2011-02-28 13:33:34

-1

您是否包含以下內容?

using System; using System.Collections.Generic;

類編譯在我的箱子細... :)

+0

這是一個運行時錯誤:) – JAiro 2011-02-28 13:31:39

2

屬性類缺乏必要的可視性。

改變類定義要麼

public class Attribute 
{ 

internal class Attribute 
{ 
+0

除非嵌套,否則這兩個是類元素上唯一允許的訪問修飾符,無論如何... – SWeko 2011-02-28 13:39:26

+0

讓你想知道他是如何在第一個地方結束的。對於默認修飾符是_internal_ – yas4891 2011-02-28 13:43:19