我具有以下类结构:
public class Result
{
protected int Code {get; set;}
protected List<string> Messages {get; set;}
protected Result ();
public static Result Success (int code, List<string> messages)
{
Result result= new Result();
result.Code=code;
result.Messages=messages;
return result;
}
}
public class ResultWithName: Result
{
protected ID {get; set;}
protected ResultWithName ()
{
}
public static ResultWithName Success (int code, List<string> messages, string name)
{
ResultWithName result= new ResultWithName();
result.Code=code;
result.Messages=messages;
result.Name=name;
return result;
}
}
如果只有一个静态方法,但是有几个静态方法,这个问题就可以了,我很感兴趣如何拥有一个更简洁的优雅代码。
谢谢
最佳答案
使用参数定义构造函数,而不是在Success
方法中内联设置属性。然后在继承链中调用每个属性时,在构造函数中设置属性。
public class Result
{
protected int Code { get; set; }
protected List<string> Messages { get; set; }
protected Result(int code, List<string> messages)
{
Code = code;
Messages = messages;
}
public static Result Success(int code, List<string> messages)
{
Result result = new Result(code, messages);
return result;
}
}
public class ResultWithName : Result
{
protected string Name { get; set; }
protected ResultWithName(int code, List<string> messages, string name) :
base(code, messages)
{
Name = name;
}
public static ResultWithName Success(int code, List<string> messages, string name)
{
ResultWithName result = new ResultWithName(code, messages, name);
return result;
}
}
关于c# - 代码重构,以消除代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097403/