我读过自动实现的属性不能只读或只写。它们只能是可读写的。
然而,在学习界面时,我遇到了foll。代码,它创建只读/只写和读写类型的自动属性。那可以接受吗?
public interface IPointy
{
// A read-write property in an interface would look like:
// retType PropName { get; set; }
// while a write-only property in an interface would be:
// retType PropName { set; }
byte Points { get; }
}
答案 0 :(得分:9)
这不是自动实现的。接口不包含实现。
声明接口IPointy
需要属于byte
的属性,名为Points
,带有公共getter 。
只要有公共吸气剂,您就可以以任何必要的方式实施接口;是否由自动财产:
public class Foo: IPointy
{
public byte Points {get; set;}
}
请注意,setter仍然可以是私有的:
public class Bar: IPointy
{
public byte Points {get; private set;}
}
或者,你可以明确地写一个getter:
public class Baz: IPointy
{
private byte _points;
public byte Points
{
get { return _points; }
}
}