详解详解C#中的接口属性以及属性访问器的访问限制中的接口属性以及属性访问器的访问限制
接口属性接口属性
可以在接口上声明属性。以下是接口索引器访问器的示例:
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
接口属性的访问器不具有体。因此,访问器的用途是指示属性是否为读写、只读或只写。
在此例中,接口 IEmployee 具有读写属性 Name 和只读属性 Counter。 Employee 类实现 IEmployee 接口并使用这两种属
性。程序读取新雇员的姓名和雇员的当前编号,并显示雇员姓名和计算所得的雇员编号。
可以使用属性的完全限定名,它引用声明成员的接口。例如:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
这称为显式接口实现(C# 编程指南)。例如,如果 Employee 类实现两个接口 ICitizen 和 IEmployee,并且两个接口都具有
Name 属性,则需要显式接口成员实现。即,如下属性声明:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
在 IEmployee 接口上实现 Name 属性,而下面的声明:
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
在 ICitizen 接口上实现 Name 属性。
interface IEmployee
{
string Name
{
get;
set;
}
int Counter
{
get;
}
}
public class Employee : IEmployee
{
public static int numberOfEmployees;
private string name;
public string Name // read-write instance property
{
get
{
return name;
}