"..." kann eine Schnittstelle implementieren, Mitglied, weil es nicht öffentlich ist
public interface IDatabaseContext : IDisposable {
IDbSet<MyEntity1> Entities1 { get; set; }
}
public class MyDbContext : DbContext, IDatabaseContext {
IDbSet<MyEntity1> Entities1 { get; set; }
}
Kann nicht kompiliert werden, da der Fehler hier beschrieben: http://msdn.microsoft.com/en-Us/library/bb384253(v=vs. 90).aspx
Jedoch, dies macht keinen Sinn, da die Schnittstelle offensichtlich IST öffentlich. Was könnte der Fehler hier?
Es macht durchaus Sinn, wenn Sie interpretieren, "es", als Verweis auf das Subjekt des Satzes: die vorgesehene Umsetzung die, nicht die Schnittstelle Element. (In anderen Worten, MyDbContext.Entities1... das ist privat, derzeit.)
InformationsquelleAutor Acrotygma | 2014-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, ist es nicht. Mitglieder-Klassen sind
private
standardmäßig. DieseEntities1
privat:Beachten Sie, dass dies unterscheidet sich zu
interface
s, wo alles istpublic
und zugriffsmodifizierer keinen Sinn machen. Also: entweder das Mitgliedpublic
:oder eine explizite interface-Implementierung:
seien Sie versichert: wenn jemand anders stellen etwas, es ist nur durch den hart erkämpften Schlacht Erfahrung machen, dass den gleichen Fehler gemacht sich selbst, wahrscheinlich mehrmals
InformationsquelleAutor Marc Gravell
Beim implementieren einer Schnittstelle Element in der Klasse, es sollte
public
Finden Sie unter: Schnittstellen (C# - Programmierhandbuch)
Oder wie @Marc Gravell, sagte in Kommentar, die Sie tun können, Explizite interface-Implementierung Mehr gefunden werden konnte, bei diese Antwort
ja, ich sollte hinzufügen, dass die Antwort
InformationsquelleAutor Habib
Schnittstelle Mitglied kann werden implemeted als zu schützen.
Wenn Sie nicht wollen, lassen wir es als abstrakte incase Abstrakte Klassen.
protected
Mitglied nicht implizit eine Schnittstelle implementieren, und eine explicit - Schnittstelle ist die Umsetzung nichtprotected
.InformationsquelleAutor Srikanth Ch