Quelle est la différence entre les internes et les constructeurs publics?
Quelle est la différence entre les internes et les constructeurs publics? Pourquoi avons-nous besoin pour créer tous ensemble?
static xyz()
{
}
public xyz()
{
}
internal xyz()
{
}
Vous n'avez pas besoin de créer de toutes.
Pourquoi les votes contre? Donc, il ne sait pas quelque chose, big dill, ce n'est pas comme il a demandé une question stupide.
Tout en n'ayant pas downvoted, l'une des raisons pour downvoting est clairement que "Cette question n'est pas de montrer tout l'effort de la recherche".
Désolé pour mon erreur,j'ai l'habitude de répéter.
Je sais que c'est la fin de la partie, mais StackOverflow est en train de devenir le point de départ de la recherche. Mon entreprise a un proxy qui permet d'accéder à un débordement de pile, la plupart des liens sur Google sont bloqués.
Pourquoi les votes contre? Donc, il ne sait pas quelque chose, big dill, ce n'est pas comme il a demandé une question stupide.
Tout en n'ayant pas downvoted, l'une des raisons pour downvoting est clairement que "Cette question n'est pas de montrer tout l'effort de la recherche".
Désolé pour mon erreur,j'ai l'habitude de répéter.
Je sais que c'est la fin de la partie, mais StackOverflow est en train de devenir le point de départ de la recherche. Mon entreprise a un proxy qui permet d'accéder à un débordement de pile, la plupart des liens sur Google sont bloqués.
OriginalL'auteur Shankaranarayana | 2011-08-10
Vous devez vous connecter pour publier un commentaire.
La
static
constructeur sera appelé la première fois qu'un objet du type est instancié ou une méthode statique est appelée. Et sera exécuté qu'une foisLa
public
constructeur est accessible à tous les autres types deLa
internal
constructeur n'est accessible qu'aux types de la même assembléeSur le dessus de ces trois il y a aussi
protected
qui est seulement accessible à des types dérivés à partir de l'affichage de typeet
protected internal
qui n'est accessible qu'aux types de la même assemblée ou ceux qui dérive de la enfermant typeet
private
qui est seulement accessible à partir du type lui-même et tous les types imbriquésOriginalL'auteur Rune FS
La différence entre
public
etinternal
est que leinternal
constructeur ne peut être appelé à partir de la même assemblée, tandis que lepublic
on peut être appelé à d'autres assemblées.static
est un constructeur qui est appelé seulement la première fois que la classe est référencé. Statique des membres n'appartiennent pas à une instance de la classe, mais "à la classe elle-même". Voir http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs. 80).aspx pour plus d'informations surstatic
.OriginalL'auteur C.Evenhuis
new
Votre code ne fait pas les compiler, parce que l'interne et le public a le même constructeur avec les différents modificateurs, qui vous ne pouvez pas le faire. Vous devez choisir soit interne ou public (ou privé).
new
. Lorsque vous zone une valuetype vous créez un objet, mais n'utilisez pas de nouvellesOriginalL'auteur Petar Ivanov
Le constructeur statique est appelée la première fois le type est utilisé. Que ce soit dans un contexte statique ou par la création d'une instance.
Tous les autres constructeurs sont appelés quand un nouvelle instance est créé. Le modificateur détermine simplement le code qui peut créer une instance.
Si votre constructeur est privé, seule la classe elle-même et les types imbriqués pouvez créer une instance (peut-être en statique méthode de fabrique). Cela fonctionne comme public/privé/interne sur les méthodes.
Est-il possible de forcer l'utilisation d'un type générique T sans la construction d'une instance?
Je ne comprends pas votre question. Vous pouvez déclarer une méthode statique avec un Paramètre générique:
public static T Get<T>()
. De cette façon, vous devez spécifier le paramètre générique lors de l'appel de la méthode. Si votre classe a un Paramètre générique vous devez le spécifier sur la classe. CommeSomeClass<T>.Do()
.Je me demande aussi ce que @supercat signifiait.
Si une variété de cours sont conçus pour être renvoyé par
Factory.Get<T>
, et si le constructeur statique pour chacun d'eux enregistre avecFactory
, puisFactory.Get<T>
sera capable de fonctionner sur n'importe quel typeT
dont le constructeur statique. Je ne connais pas d'autres moyens que la Réflexion, toutefois, par l'intermédiaire de laquelleFactory.Get<Foo>
peut fonctionner que siFoo
manque un public constructeur par défaut et n'a pas exécuté son constructeur public. Notez que le simple passageFoo
comme un paramètre générique, ou même la création d'unFoo[]
, ne suffira pas.OriginalL'auteur Zebi
Vous n'avez pas besoin de créer tous types de constructeurs. Les modificateurs d'accès fonction est la même que tout autre modificateur d'accès - pour déterminer comment les constructeurs peuvent être accessibles.
internal
, qui est "accessible uniquement dans les fichiers de la même assemblée".protected
etprivate
constructeurs fonctionnent comme prévu - les constructeurs sont accessibles pour les éléments qui répondent aux critères pour le modificateur d'accès.OriginalL'auteur foxy