Вот что похоже на классы, с которыми я сейчас работаю.Выполнение oprator независимо от факта использования базового или унаследованного класса?
public class SomeClass
{
public PropertyAClass A { get; set;}
public PropertyBClass B { get; set;}
public SomeClass (PropertyAClass A, PropertyBClass B)
{
this.A = A;
this.B = B;
}
public static SomeClass operator +(SomeClass a, SomeClass b)
{
return new SomeClass(a.A + b.A, a.b + b.B);
}
}
public class DerivedClass : SomeClass
{
public DerivedClass (PropertyADerivedClass A, PropertyBDerivedClass B) : base(A,B)
{
}
//Operation is the same but I have to repeat the method
public static DerivedClass operator +(DerivedClass a, DerivedClass b)
{
return new DerivedClass(a.A + b.A, a.b + b.B);
}
}
Есть ли какой-нибудь умный способ, который позволил бы не повторить оператор + в производном классе, применяя его к базовому классу и по-прежнему получать производный класс в качестве вывода?
Вы пытаетесь выяснить, как заменить одна очень простая строка кода. Даже если бы вы могли, все, что вы попытаетесь сделать, несомненно, будет значительно более сложным. – Servy
Это пример. В фактическом коде строка кода может быть менее простой. – TTT
Если это не репрезентативно, то решение этой проблемы вряд ли поможет вам. Как вы могли бы избежать повторения того, что работа над подробным творчеством будет сильно зависеть от того, что это за творение. – Servy