NET 2.0之前,有没有在C#选择的get和set属性或索引的水平能见度设施。 Andnbsp;我在我的评论,C#不提供get和set访问不同的能见度水平的设施。虽然这部分是正确的的,它是C#2.0中没有更多的。
,显然,这是不容易和优雅的方式。看看这个代码片断:public bool LogToStdError
{
get
{
return _log2StdError;
}
protected set
{
_log2StdError = value;
}
}
我没有解释的代码,除了有一些限制,而有不同的属性的get / set访问的能见度水平。获取或设置,你可以提供一个明确的知名度。因此,下面的代码将抛出一个错误:从而明确指定的能见度,必须是财产申报的一个子集[比限制性]。例如,如果是受保护的财产申报,然后获取/设置访问器不能喜欢说公共。所以下面的代码将抛出一个错误:protected bool LogToStdError
{
get
{
return _log2StdError;
}
public set
{
_log2StdError = value;
}
}
我觉得这些限制是愚蠢的,这是因为语法。我只是觉得有点优雅的语法属性定义的一些想法。单独的get和set访问器必须到指定的水平能见度。
财产申报的语法必须不承担任何水平能见度,除非相关的get / set访问器不承担任何。例如,在下面的属性定义,get / set访问是公开的:bool LogToStdError
{
public get
{
return _log2StdError;
}
protected set
{
_log2StdError = value;
}
}
public bool LogToStdError
{
get
{
return _log2StdError;
}
set
{
_log2StdError = value;
}
}
,按这个属性定义的get / set访问保护:
如果有既不在属性定义,也没有在访问器指定的能见度水平,那么缺省的水平能见度指定的C#[我猜内部将属性访问应用。因此get / set访问内部的下列财产:protected bool LogToStdError
{
get
{
return _log2StdError;
}
set
{
_log2StdError = value;
}
}
{S0}bool LogToStdError
{
get
{
return _log2StdError;
}
set
{
_log2StdError = value;
}
}