相关疑难解决方法(0)

有多少参数太多了?

例程可以有参数,这不是新闻.您可以根据需要定义任意数量的参数,但是过多的参数会使您的日常工作难以理解和维护.

当然,您可以使用结构化变量作为解决方法:将所有这些变量放在单个结构中并将其传递给例程.实际上,使用结构简化参数列表是Steve McConnell在Code Complete中描述的技术之一.但正如他所说:

细心的程序员避免捆绑数据,这在逻辑上是必要的.

因此,如果您的例程有太多参数或使用结构来伪装一个大参数列表,那么您可能做错了.也就是说,你没有保持松耦合.

我的问题是,我什么时候可以考虑参数列表太大?我认为超过5个参数,太多了.你怎么看?

language-agnostic parameters

228
推荐指数
19
解决办法
13万
查看次数

构造函数应该有多少个变量?

我意识到这是一个非常开放的问题,可以得到各种各样的答案,但是这里有.

使用C#(或Java,或任何OO语言),是否有一个通用规则说明应该将多少变量传递给构造函数?我传递给扩展类的构造函数的变量数似乎失控了.

为了封装类的数据,我将成员声明为private,在构造函数中初始化它们,并使用公共访问器.

这是一个例子:

public class A
{
  private int var1;
  private int var2;
  private int var3;

  //3 variables passed in
  public A(int v1, int v2, int v3)
  {
    var1 = v1;
    var2 = v2;
    var3 = v3;
  }

  //Properties (accessors) here
}

public class B : A
{
  private int var4;
  private int var5;

  //5 variables passed in
  public B(int v1, int v2, int v3, int v4, int v5)
  : base(v1,v2,v3)
  {
    var4 = v4;
    var5 = v5;
  } …
Run Code Online (Sandbox Code Playgroud)

c# variables constructor limit

32
推荐指数
3
解决办法
5953
查看次数