通过查看来自开放源代码项目和封闭源代码项目的一些C#代码,我发现私有方法(有时有时是公共方法)被设计为获取参数,而不是直接访问实例变量以提取所需的参数。
class A
{
private B b;
public void Methode1()
{
Methode2(b.SomeProperty);
}
private void Methode2(string param)
{
}
}
这被认为是一种好习惯,还是仅仅是一种编程方式?
最佳答案
是的,正常。还考虑将Methode2
移到类B
(Tell, don't ask原则):
class A
{
private B b;
public void Methode1()
{
b.Methode2();
}
}
不好的是-当您只需要将其整个属性作为方法的参数时(将其传递给方法,而不是执行所需的值):
class A
{
private B b;
public void Methode1()
{
Methode2(b);
}
private void Methode2(B b)
{
// use b.SomeProperty
}
}