Vediamo in questa classe:Perché il campo privato della classe è visibile quando si passa lo stesso tipo di un parametro del metodo C#?
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;
}
}
per questo che può accedere a campo privato?
Posso usare questa funzione o potrebbe essere una cattiva pratica?
Questo è di progettazione ed è particolarmente utile per i metodi statici "metodi di fabbrica" e "clone". –
I campi privati sono accessibili all'interno del tipo. ComputeDistanceToOtherClusterCLINK è il membro dello stesso calss. Quindi il campo privato dovrebbe essere accessibile dal corpo del metodo. –
Possibile duplicato di http://stackoverflow.com/questions/8566307/private-field-accessible-from-another-instance-of-the-same-class –