Lasst uns sagen, dass ich eine Schnittstelle:In C# wie eine Klasse zu verhindern, dass
interface IPerson
{
int Age { get; set; }
string Name { get; set; }
bool Alive { get; set; }
}
und eine Klasse:
public class Person : IPerson
{
public int Age { get; set; }
public string Name { get; set; }
}
, die seit Person nicht kompilieren würde nicht implementiert die Alive
Property .
Was ich gerne wissen würde, ist, wenn es eine Möglichkeit gibt, das gleiche Verhalten zu haben, wenn Person eine zusätzliche Eigenschaft hinzufügt, die in seiner Schnittstelle nicht gefunden wird.
interface IPerson
{
int Age { get; set; }
string Name { get; set; }
}
und eine Klasse:
public class Person : IPerson
{
public int Age { get; set; }
public string Name { get; set; }
public bool Alive { get; set; } <---- This should prevent it from compiling as well.
}
Ich würde es nicht so gut, oder zumindest geben Sie mir eine Kompilierung Warnung erfolgen soll, kompilieren.
Warum brauchen Sie das? – CodeFuller
Aus der Sicht des Compilers ist es nicht falsch, einer Klasse, die eine Schnittstelle implementiert, Eigenschaften hinzuzufügen. Warum willst du dieses Verhalten? – Yuck
Wenn Sie die Schnittstelle in Ihren Anwendungen verwenden und die verwendete konkrete Klasse nicht angeben, weiß Ihre Anwendung nichts über die zusätzlichen Eigenschaften und Methoden. – James