2010-11-29 8 views
1

J'ai la ligne de code suivante dans mon programmeAccessibilité de l'erreur de accesseurs

public Chromosome NewChromosome { get; public set; } 

qui donne l'erreur suivante:

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

J'ai essayé de modifier les modificateurs d'accessibilité des accesseurs et la propriété mais je suis incapable de résoudre le problème.

Pour référence, voici le type 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 
} 

Répondre

3

Supprimer public de public set ou le rendre plus restrictif que public. Dans

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

il faut que get_accessor_modifier et set_accessor_modifier sont plus restrictives que property_access_modifier. Dans votre cas, property_access_modifier est public de sorte que get_accessor_modifier et set_accessor_modifier doivent être protected, internal, protected internal ou private.

Gardez à l'esprit que si property_access_modifier est omis alors il est par défaut private et get_accessor_modifier et set_accessor_modifier défaut property_access_modifier si elles sont omis.

5

Dérouler le modificateur d'accès public sur le poseur:

public Chromosome NewChromosome { get; set; } 

Par défaut, les modificateurs d'accès pour les accesseurs d'une propriété sont attribués le même modificateur d'accès comme la propriété elle-même. Si vous choisissez de définir un modificateur d'accès explicite pour un accesseur, il doit être plus restrictif que le modificateur d'accès de la propriété.

+0

Cela a fonctionné, merci –