Если я хочу привести из класса Foo
к другому классу Bar
, должен ли код для преобразования принадлежать к классу Foo
или Bar
?
Foo f
Bar b = f.ToBar()
Или:
Foo f
Bar b = Bar.FromFoo(f)
Последний может быть переписан как конструктор, а не как статический метод, но суть этого вопроса не в этом.
Конечно, во многих случаях решение о том, что вы не можете изменить один из классов, принимается за вас. Например, если у меня есть собственный класс Foo
и я хочу преобразовать его в целое число.