我试图防止重复扩展代码 例如 UrlHelper(this SomeDataEventClass e) 和 UrlHelper(this AnotherDataEventClass e)。他们正在做同样的事情,即根据类生成 url。
但是有没有另一种方法可以进一步简化这两个方法,防止方法重复
您可以在两个类都扩展的基类上创建一个扩展方法。这样就只能使用基类中的字段。或者您需要检查当前正在处理哪种类型,但这会破坏您正在添加的抽象并保证多个实现。
public abstract class BaseClass
{
public string DomainName { get; set; }
}
public class ClassA : BaseClass
{
}
public class ClassB : BaseClass
{
}
public static class DataExtensions
{
public static string UrlHelper(this BaseClass baseClass)
{
return baseClass.DomainName + ".com";
}
}
public class SomeLogic
{
public void DoStuff()
{
var a = new ClassA();
var url = a.UrlHelper();
var b = new ClassB();
var urlb = b.UrlHelper();
}
}