Свойства интерфейса (Руководство по программированию в C#)
Обновлен: Ноябрь 2007
Свойства можно объявлять в interface (Справочник по 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 { }
}
реализует свойство Name для интерфейса IEmployee, а следующее объявление:
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
реализует свойство Name в интерфейсе ICitizen.
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;
}
set
{
name = value;
}
}
private int counter;
public int Counter // read-only instance property
{
get
{
return counter;
}
}
public Employee() // constructor
{
counter = ++counter + numberOfEmployees;
}
}
class TestEmployee
{
static void Main()
{
System.Console.Write("Enter number of employees: ");
Employee.numberOfEmployees = int.Parse(System.Console.ReadLine());
Employee e1 = new Employee();
System.Console.Write("Enter the name of the new employee: ");
e1.Name = System.Console.ReadLine();
System.Console.WriteLine("The employee information:");
System.Console.WriteLine("Employee number: {0}", e1.Counter);
System.Console.WriteLine("Employee name: {0}", e1.Name);
}
}
210
Hazem Abolrous
Пример результатов выполнения
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous
См. также
Основные понятия
Руководство по программированию в C#
Ссылки
Свойства (руководство по программированию в C#)
Использование свойств (руководство по программированию в C#)
Сравнение свойств и индексаторов (руководство по программированию в C#)