我不知道问题是否足够描述,但为什么以及如何存在这种行为?:
public class Layer
{
public string Name { get; set; }
private IEnumerable<Layer> children;
public IEnumerable<Layer> Children
{
get { return this.children.Where ( c => c.Name != null ).Select ( c => c ); }
set { this.children = value; }
}
public Layer ( )
{
this.children = new List<Layer> ( ); // Fine
Layer layer = new Layer ( );
layer.children = new List<Layer> ( ); // Isn't .children private from the outside?
}
}
Run Code Online (Sandbox Code Playgroud)
我可以访问layer.Children …
让我们看看这堂课:
public class Cluster
{
private List<Point> points; //private field
public float ComputeDistanceToOtherClusterCLINK(Cluster cluster)
{
var max = 0f;
foreach (var point in cluster.points) // here points field are accessible
{
.......
}
return max;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我可以访问私人领域?
我可以使用此功能还是可能是不好的做法?