我可以将参数从一种方法定义到另一种方法

时间:2015-02-20 12:02:39

标签: c#

我希望设计一个接口方法(a),它接受另一个方法(b)的参数,所以如果该方法(b)改变,(a)也会改变,而不必更新它。这可能吗?

我将尝试用以下代码解释

我想调用参数的方法:

public int AddUser(string name, string description)
{
    ...
    return userID;
}

然后我有两种方法,

public void AddCustomerUser(int customerID, int UserID)
{
    //Do stuff
}

public void AddCustomerUser(int customerID, (string name, string description)<- these come from AddUser method?)
{
    AddUser(name, description); <- these parameters come from what I'm trying to do

}

我想要实现的目标是什么?

1 个答案:

答案 0 :(得分:7)

我宁愿为这些参数实现(提取

 (string name, string description) -> class

班级本身可能是那样的

public class User {
  ...
  public String Name {...}
  public String Description {...}
}

方法将是

  public int AddUser(User user);

  public void AddCustomerUser(int customerId, User user);

因此可以更改 User,而不是方法

您可以进一步实施另一个类CustomerUser

  public class CustomerUser: User {
    ...
    public int CustomerId {...}
  }

两种方法合二为一:

  public int AddUser(User user) {
    CustomerUser cm = user as CustomerUser;

    if (cm != null) {
      int customerId = cm.CustomerId;
      ...
    }
  }