Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A tulajdonságok egy felületen deklarálhatók. Az alábbi példa egy interfésztulajdonság-tartozékot deklarál:
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
Az illesztőtulajdonságok általában nem rendelkeznek törzstel. A hozzáférők jelzik, hogy a tulajdonság olvasható-írható, csak olvasható vagy csak írható. Az osztályoktól és a szerkezetektől eltérően a tartozék törzs nélküli deklarálása nem deklarál automatikusan implementált tulajdonságot. A felület meghatározhat egy alapértelmezett implementációt a tagok számára, beleértve a tulajdonságokat is. Az illesztőben lévő tulajdonság alapértelmezett implementációjának definiálása ritka, mert az illesztők nem tudják definiálni a példány adatmezőit.
Példa
Ebben a példában a felületnek van egy olvasási és írási tulajdonsága IEmployee, és egy csak olvasható tulajdonsága Name. Az osztály Employee implementálja az interfészt IEmployee , és ezt a két tulajdonságot használja. A program felolvassa egy új alkalmazott nevét és az alkalmazottak aktuális számát, és megjeleníti az alkalmazott nevét és a kiszámított alkalmazotti számot.
Használhatja a tulajdonság teljes nevét, amely arra a felületre hivatkozik, amelyben a tag deklarálva van. Példa:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Az előző példa az explicit felület implementálását mutatja be. Ha például az osztály Employee két interfészt, ICitizen és IEmployee, implementál, és mindkét interfész rendelkezik a Name tulajdonsággal, akkor szükség van az explicit interfész tag implementálására. Ez a következő tulajdonságdeklaráció:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Megvalósítja a Name tulajdonságot a IEmployee felületen, viszont a következő deklaráció:
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
Implementálja a tulajdonságot Name a ICitizen felületen.
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}");
Példakimenet
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous