Если переданное значение не совпадает с возвращенным значением, то не является свойством . Если вы пойдете по этому пути, вы будете создавать путаницу для тех, кому нужно вызвать ваш код или сохранить его в будущем.
Единственное решение, которое я могу придумать, и, к тому же, плохое , это объявить свойство типа object
.
Как лучше всего инкапсулировать этот метод и выставлять его с помощью свойства?
Должно ли это быть одно и то же свойство? Не могли бы вы иметь что-то похожее на:
private Type2 _valueThatIsStoredAsAResultOfCallMethod;
private Type2 CallMethod(Type1 value)
{
// Whatever logic is required here to take a value of Type1 and
// get a value of Type2 from it
return value.ToType2();
}
public Type1
{
set
{
// value is of type Type1
_valueThatIsStoredAsAResultOfCallMethod = CallMethod(value);
}
}
public Type2
{
get
{
return _valueThatIsStoredAsAResultOfCallMethod;
}
}