Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vlastnosti lze deklarovat v rozhraní. Následující příklad deklaruje přístupové objekty vlastnosti rozhraní:
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
Vlastnosti rozhraní obvykle nemají tělo. Přístupové objekty označují, zda je vlastnost jen pro čtení, jen pro čtení nebo jen pro zápis. Na rozdíl od tříd a struktur deklarování přístupových objektů bez těla deklaruje automaticky implementovanou vlastnost. Rozhraní může definovat výchozí implementaci pro členy, včetně vlastností. Definování výchozí implementace vlastnosti v rozhraní je vzácné, protože rozhraní nemohou definovat datová pole instance.
Příklad
V tomto příkladu má rozhraní IEmployee vlastnost Namepro čtení i zápis a vlastnost jen pro čtení , Counter. Třída Employee implementuje IEmployee rozhraní a používá tyto dvě vlastnosti. Program přečte jméno nového zaměstnance a aktuální počet zaměstnanců a zobrazí jméno zaměstnance a vypočítané číslo zaměstnance.
Můžete použít plně kvalifikovaný název vlastnosti, která odkazuje na rozhraní, ve kterém je člen deklarován. Příklad:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Předchozí příklad ukazuje explicitní implementaci rozhraní. Pokud například třída Employee implementuje dvě rozhraní a ICitizen obě rozhraní IEmployee mají Name vlastnost, je nutná explicitní implementace člena rozhraní. To znamená, že následující deklarace vlastnosti:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Implementuje Name vlastnost v IEmployee rozhraní, zatímco následující deklarace:
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
Implementuje Name vlastnost v ICitizen rozhraní.
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 => _name;
set => _name = value;
}
private int _counter;
public int Counter // read-only instance property
{
get => _counter;
}
// constructor
public Employee() => _counter = ++numberOfEmployees;
}
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: {e1.Counter}");
System.Console.WriteLine($"Employee name: {e1.Name}");
Ukázkový výstup
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous