我的程序中有以下代码行
public Chromosome NewChromosome { get; public set; }
会出现以下错误:
错误1
更具限制性
'ARP_TLL.DataAccess.ChromosomeAddedEventArgs.NewChromosome.set'
访问者的辅助功能修饰符必须比属性或索引器'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
}
答案 0 :(得分:5)
将public
访问修饰符放在setter上:
public Chromosome NewChromosome { get; set; }
默认情况下,属性访问者的访问修饰符被赋予与属性本身相同的访问修饰符。如果您选择为访问者设置显式访问修饰符,则它必须比属性的访问修饰符更具限制性。
答案 1 :(得分:3)
从public
移除public set
或使其比public
更具限制性。在
[property_access_modifier] property_type property_name {
[get_accessor_modifier] get;
[set_accessor_modifier] set;
}
必须是get_accessor_modifier
和set_accessor_modifier
比property_access_modifier
更具限制性。在您的情况下,property_access_modifier
为public
,因此get_accessor_modifier
和set_accessor_modifier
必须为protected
,internal
,protected internal
或{{ 1}}。
请注意,如果省略private
,则默认为property_access_modifier
,private
和get_accessor_modifier
默认为set_accessor_modifier
,如果省略它们。