Proprietà delle interfacce (Guida per programmatori C#)
Aggiornamento: novembre 2007
Le proprietà possono essere dichiarate su una interface (Riferimenti per C#). Nell'esempio seguente viene illustrata la funzione di accesso di un indicizzatore di interfaccia:
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
La funzione di accesso di una proprietà di interfaccia non include un corpo. Lo scopo delle funzioni di accesso è quindi di indicare se la proprietà è in lettura/scrittura, in sola scrittura o in sola lettura.
Esempio
Nell'esempio che segue l'interfaccia IEmployee è associata a una proprietà di lettura/scrittura, Name, e a una proprietà in sola lettura, Counter. La classe Employee implementa l'interfaccia IEmployee e utilizza le due proprietà. Il programma legge il nome di un nuovo dipendente e il numero corrente di dipendenti, quindi visualizza il nome del dipendente e il relativo numero calcolato.
È possibile utilizzare il nome completo della proprietà, che fa riferimento all'interfaccia in cui il membro è dichiarato. Ad esempio:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Questo meccanismo è denominato Implementazione esplicita di un membro di interfaccia (Guida per programmatori C#). Se la classe Employee, ad esempio, implementa due interfacce, ICitizen e IEmployee, ed entrambe le interfacce sono associate alla proprietà Name, sarà necessaria l'implementazione esplicita del membro di interfaccia. Pertanto, la dichiarazione di proprietà
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
implementa la proprietà Name nell'interfaccia IEmployee, mentre la dichiarazione
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
implementa la proprietà Name nell'interfaccia 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
Esempio di output
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous
Vedere anche
Concetti
Riferimenti
Proprietà (Guida per programmatori C#)
Utilizzo delle proprietà (Guida per programmatori C#)
Confronto tra proprietà e indicizzatori (Guida per programmatori C#)