我正在设计一个接口方法(a),它接受另一个方法(b)的参数,所以如果该方法(b)改变,(a)也将改变,而我不必更新它.这可能吗?
我将尝试使用以下代码进行解释
带参数的方法我想调用:
public int AddUser(string name, string description)
{
...
return userID;
}
Run Code Online (Sandbox Code Playgroud)
然后我有两种方法,
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
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标是什么?
我宁愿为这些参数实现(提取)一个类:
(string name, string description) -> class
Run Code Online (Sandbox Code Playgroud)
班级本身就是这样的
public class User {
...
public String Name {...}
public String Description {...}
}
Run Code Online (Sandbox Code Playgroud)
方法将是
public int AddUser(User user);
public void AddCustomerUser(int customerId, User user);
Run Code Online (Sandbox Code Playgroud)
所以它是可以改变的类 User,而不是方法.
您可以进一步实现另一个类,CustomerUser:
public class CustomerUser: User {
...
public int CustomerId {...}
}
Run Code Online (Sandbox Code Playgroud)
并结合两种方法为一个:
public int AddUser(User user) {
CustomerUser cm = user as CustomerUser;
if (cm != null) {
int customerId = cm.CustomerId;
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |