Was ist der Unterschied zwischen statischen, internen und öffentlichen Bauherren?
Was ist der Unterschied zwischen statischen, internen und öffentlichen Bauherren? Warum brauchen wir, um alle von Ihnen zusammen?
static xyz()
{
}
public xyz()
{
}
internal xyz()
{
}
Sie brauchen nicht, um alle von Ihnen.
Warum nach unten Stimmen? So dass er etwas nicht weiß, big dill, es ist nicht so, er fragte eine dumme Frage.
Zwar nicht mit downvoted, einer der Gründe für downvoting ist ganz klar "Diese Frage zeigt keine Forschung".
Sorry für meine Fehler,die ich nicht wiederholen.
Ich weiß, das ist spät für die party, aber StackOverflow ist immer der Ausgangspunkt für die Forschung. Meine Firma hat eine proxy, die ermöglicht den Zugriff auf stack overflow, die meisten links in Google werden blockiert.
Warum nach unten Stimmen? So dass er etwas nicht weiß, big dill, es ist nicht so, er fragte eine dumme Frage.
Zwar nicht mit downvoted, einer der Gründe für downvoting ist ganz klar "Diese Frage zeigt keine Forschung".
Sorry für meine Fehler,die ich nicht wiederholen.
Ich weiß, das ist spät für die party, aber StackOverflow ist immer der Ausgangspunkt für die Forschung. Meine Firma hat eine proxy, die ermöglicht den Zugriff auf stack overflow, die meisten links in Google werden blockiert.
InformationsquelleAutor Shankaranarayana | 2011-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
static
Konstruktor aufgerufen wird, das erste mal ein Objekt des Typs instanziiert oder eine statische Methode aufgerufen wird. Und wird nur einmal ausgeführtDen
public
Konstruktor ist zugänglich für alle anderen ArtenDen
internal
Konstruktor der Zugriff ist nur für die Typen in der selben assemblyOben auf diesen drei gibt es auch
protected
ist nur zugänglich abgeleiteten Typen, die von den umschließenden Typsowie
protected internal
denen der Zugriff ist nur für die Typen in der gleichen assembly oder diejenigen, die sich von den umschließenden Typsowie
private
denen lediglich ein Zugang von dem Typ selbst und alle geschachtelten TypenInformationsquelleAutor Rune FS
Den Unterschied zwischen
public
undinternal
ist, dass dieinternal
Konstruktor nur aufgerufen werden, in der gleichen assembly, während diepublic
man kann aufgerufen werden, von anderen Versammlungen als gut.static
ist ein Konstruktor, der aufgerufen wird, wird nur das erste mal die Klasse referenziert. Statische member gehören nicht in eine Instanz der Klasse, sondern die "Klasse an sich". Sehen http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs. 80).aspx für weitere Informationen überstatic
.InformationsquelleAutor C.Evenhuis
new
Deinen code eigentlich nicht kompilieren, weil die internen und die öffentlichen sind die gleichen Konstruktor mit verschiedenen Modifikatoren, die Sie nicht tun können. Sie müssen wählen Sie entweder den internen oder öffentlichen (oder privaten).
new
. Wenn Sie die box ein valuetype Sie ein Objekt anlegen, aber keine neueInformationsquelleAutor Petar Ivanov
Der statische Konstruktor wird aufgerufen, das erste mal die Typ verwendet wird. Entweder in einem statischen Kontext oder durch die Erstellung einer Instanz.
Alle anderen Konstruktoren aufgerufen, wenn ein neue Instanz erstellt. Der Modifikator nur bestimmt, welcher code ist das erstellen einer Instanz.
Wenn Ihr Konstruktor ist private nur die Klasse selbst und geschachtelte Typen erstellen eine Instanz (vielleicht in einer statischen factory-Methode). Diese funktioniert wie public/private/interne Methoden.
Gibt es eine Möglichkeit zu zwingen, die "Verwendung" von einem generischen Typ T ohne Aufbau einer Instanz?
Ich verstehe nicht, Ihre Frage. Sie können deklarieren Sie eine statische Methode mit einem generischen Parameter:
public static T Get<T>()
. Auf diese Weise müssen Sie die generischen parameter beim Aufruf der Methode. Wenn Ihre Klasse hat einen generischen Parameter müssen Sie angeben, es auf die Klasse an. WieSomeClass<T>.Do()
.Ich Frage mich auch, was @supercat gemeint.
Wenn eine Vielzahl von Klassen sind entworfen, um zurück
Factory.Get<T>
, und wenn der statische Konstruktor für jeden von Ihnen registriert sich selbst mitFactory
, dannFactory.Get<T>
agieren zu können, die auf diesen TypT
deren statischer Konstruktor ausgeführt wurde. Ich kenne keine andere Art als durch Reflexion, aber über dieFactory.Get<Foo>
funktionieren kann, wennFoo
fehlt, einen öffentlichen default-Konstruktor noch nicht ausgeführt, seine öffentlichen Konstruktor. Beachten Sie, dass lediglich die übergabeFoo
als einen generischen parameter, oder auch die Schaffung einesFoo[]
, wird nicht ausreichen.InformationsquelleAutor Zebi
Brauchen Sie nicht zu schaffen, alle Arten von Konstruktoren. Der zugriffsmodifizierer dienen die gleiche Funktion wie jede andere access-modifier - um zu bestimmen, wie die Konstruktoren zugegriffen werden kann.
internal
, die "nur innerhalb der Dateien, die in der gleichen assembly".protected
undprivate
Konstruktoren bedienen, wie Sie erwarten - die Konstruktoren zugänglich sind Elemente, die die Kriterien erfüllen, die für die zugriffsmodifizierer.InformationsquelleAutor foxy