Рассмотрим следующую ситуацию:
У нас есть два класса, сгенерированных Visual Studio, например Typed Dataset Rows.Эти классы являются производными от общего базового класса, который мы не можем изменить.Мы не можем изменить класс, от которого происходят эти дочерние классы, но они генерируются как частичные классы, поэтому мы можем расширять их.
Теперь мы решили реализовать интерфейс для этих двух классов, который определяет некоторые общие методы, но методыбудут реализованы одинаково в обоих классах.Где лучше всего разместить эти методы, чтобы мы не писали один и тот же код дважды.
Я мог бы написать код в некотором вспомогательном классе или глобальном классе, но, похоже, должен быть лучший способ.
Вот краткий пример кода:
public interface ICommonInterface
{
void SomeMethod(int x);
}
// we cannot change what is in the base class and we cannot derive Child1 or Child2 from
// a different base class, because they are partial classes generated by Visual Studio
// we can extend them, and create an interface though
public partial class Child1: SomeBaseClass, ICommonInterface
{
public void SomeMethod(int x)
{
//this code is the same in both child classes
//where is the best place to put this to avoid writing
//the same code twice
}
}
public partial class Child2: SomeBaseClass, ICommonInterface
{
public void SomeMethod( int x)
{
//this code is the same in both child classes
//where is the best place to put this to avoid writing
//the same code twice
}
}