2010-11-29 90 views
1

我有下面一行代碼在我的程序輔助存取錯誤的

public Chromosome NewChromosome { get; public set; } 

它提供了以下錯誤:

Error 1

The accessibility modifier of the 'ARP_TLL.DataAccess.ChromosomeAddedEventArgs.NewChromosome.set' accessor must be more restrictive than the property or indexer 'ARP_TLL.DataAccess.ChromosomeAddedEventArgs.NewChromosome'

C:\Users\kiangtengl\Programming\Projects\ARP_TLL\ARP_TLL\DataAccess\ChromosomeAddedEventArgs.cs

16
55
ARP_TLL

我試圖修改存取和屬性的訪問修飾符但我無法解決問題。

僅供參考,這裏是類型Chromosome

public class Chromosome 
{ 
    #region properties 

    public int Length 
    { 
     get; 
     set; 
    } 

    public int Number 
    { 
     get; 
     set; 
    } 

    #endregion 

    #region creation 

    public static Chromosome CreateChromosome(int _length, int _number) 
    { 
     return new Chromosome 
     { 
      Length = _length, Number = _number, 
     }; 
    } 
    #endregion 
} 

回答

3

public set刪除public或使其比public更具限制性。在

[property_access_modifier] property_type property_name { 
    [get_accessor_modifier] get; 
    [set_accessor_modifier] set; 
} 

它必須是get_accessor_modifierset_accessor_modifierproperty_access_modifier更加嚴格。在你的情況下,property_access_modifierpublic,所以get_accessor_modifierset_accessor_modifier必須是protected,internal,protected internalprivate

請記住,如果省略property_access_modifier則默認爲privateget_accessor_modifierset_accessor_modifier默認爲property_access_modifier,如果他們被省略。

5

滴在二傳手的public訪問修飾符:

public Chromosome NewChromosome { get; set; } 

默認情況下,對屬性訪問器訪問修飾符分配相同的訪問修飾符作爲財產本身。如果您選擇爲訪問者設置顯式訪問修飾符,則它必須比屬性的訪問修飾符更具限制性。

+0

它的工作,謝謝 – 2010-11-29 03:55:23