【发布时间】:2011-11-03 21:42:52
【问题描述】:
以下不是一个好的做法吗?
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 对象发送,以便该方法的用户知道他们可以期望该方法更新或不更新传入的对象。
【问题讨论】:
-
作为一个注释,我认为
IMyReadOnlyData比IMyImmutableData具有更好的含义,因为对象是可变的。