Una interfaz puede ser un miembro de un espacio de nombres o de una clase y puede contener firmas de los siguientes miembros:
Methods
Properties
Indexers
Events
Las propiedades pueden ser declaradas en las interfaces. La declaración toma la siguiente forma: El acceso de una propiedad de interfaz no tiene cuerpo.
Por lo tanto, el objetivo de los accesores es indicar si la propiedad es de lectura-escritura, solo lectura o solo escritura.
Ejemplo:
// Interface Properties
interface IEmployee
{
string Name
{
get;
set;
}
int Counter
{
get;
}
}
implementación:
public class Employee: IEmployee
{
public static int numberOfEmployees;
private int counter;
private string name;
// Read-write instance property:
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
// Read-only instance property:
public int Counter
{
get
{
return counter;
}
}
// Constructor:
public Employee()
{
counter = ++counter + numberOfEmployees;
}
}
MainClass:
public class MainClass
{
public static void Main()
{
Console.Write("Enter number of employees: ");
string s = Console.ReadLine();
Employee.numberOfEmployees = int.Parse(s);
Employee e1 = new Employee();
Console.Write("Enter the name of the new employee: ");
e1.Name = Console.ReadLine();
Console.WriteLine("The employee information:");
Console.WriteLine("Employee number: {0}", e1.Counter);
Console.WriteLine("Employee name: {0}", e1.Name);
}
}
@Gishu - (+1) gracias por señalar al hilo correcto. ------------------------------------------------ ------ @Sandeep - En términos simples, una interfaz puede contener declaraciones de métodos solamente. Las propiedades, eventos o indexadores son variantes de métodos. Getter & setter in Properties son solo variantes de métodos. Consulte "CLR a través de C#" O "Essential .net Volume 1" para obtener más información. –