2010-11-29 61 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