我希望设计一个接口方法(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
}
我想要实现的目标是什么?
答案 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;
...
}
}