Не является ли следующая практика хорошей практикой?
public interface IMyImmutableData
{
int Data { get;}
}
public interface IMyMutableData
{
int Data { set;get;}//implements both get and set
}
public class MyData : IMyImmutableData, IMyMutableData
{
public int Data{get;set;} //implements both IMyImmutableData, IMyMutableData
}
void Main()
{
MyData myData = new MyData{Data=10};
Console.WriteLine(myData.Data);
}
Причина, по которой я спрашиваю, состоит в том, что resharper выдает мне следующее предупреждение: «возможная неоднозначность при доступе через этот интерфейс»
Причина, по которой я хочу сделать это, заключается в том, что когда я создаю методы, которые используют класс MyData, я хотел бы отправить его как объекты IMyMutable или IMyImmutable, чтобы пользователи метода знали, что они могут ожидать, что метод обновить или не обновить переданный объект.