J'ai vu ce bloc de code quand j'essayais de construire quelque chose avec APN. Quelqu'un pourrait-il m'expliquer qu'est-ce que "ces" déclarations font là-bas? est-ce comme des valeurs par défaut de ces arguments? p> p>
3 Réponses :
Par exemple p> Ceci permet d'appeler un constructeur qui peut invoquer un autre. p> p> Ce code> appelle le constructeur surchargé de la classe ApplePushService avec les paramètres spécifiés.
Y a-t-il des avantages de faire cela plutôt que d'avoir des paramètres facultatifs?
@Markusmeskanen Les paramètres facultatifs n'ont pas toujours été pris en charge par la langue, ce qui vous permet également d'avoir une commande différente ou d'omettre des paramètres entre les deux. Vous pouvez également utiliser cela facilement pour développer le constructeur (par exemple dans l'exemple ci-dessus, le constructeur de deux paramètres peut également appeler ceci (arg1) code>, puis faire quelque chose de spécial pour le deuxième paramètre).
@Poke Cool, merci! :)
Bien sûr - cette chaîne un constructeur sur un autre. Il existe deux formes - Si vous ne spécifiez rien, il chaîne automatiquement un constructeur sans paramètre dans la classe de base. Donc: p> est équivalent à p> Notez que les initialisateurs variables d'instance sont exécutés avant em> L'autre constructeur est appelé. p> surprenant, le compilateur C # ne détecte pas si vous vous retrouvez avec une récursion mutuelle - ce code est donc valide, mais se retrouvera avec un débordement de pile: P> < Pré> xxx pré> (cela vous empêche toutefois de chaîner sur la même signature du constructeur, cependant.) P> Pour plus de détails, voir mon article sur le constructeur enchaînant . p> p> ceci code> pour chaîner sur un autre constructeur de la même classe et base code> pour chaîner à un autre constructeur de la classe de base. Le corps du constructeur que vous enchaînez à exécuter, puis votre corps de constructeur s'exécute. (Bien sûr, l'autre constructeur peut enchaîner d'abord sur un autre.)
qui appelle un autre constructeur dans ce cas, le Par exemple: P> : this (...) code> est utilisé pour appeler un autre constructeur dans cette classe. public ClassName() : this("abc") { }
public ClassName(string name) { }
@dasblinkenlight bien que sa relation, ce n'est pas un double de cette question en ce qui concerne l'intention.
Voir aussi Stackoverflow.com/questions/3797528/ ...