Analyse des constructeurs multi-chargés et des paramètres nuls en C#
Supposons qu'une classe contienne plusieurs constructeurs :
<code class="language-csharp">public class EffectOptions { public EffectOptions(params object[] options) { } public EffectOptions(IEnumerable<object> options) { } public EffectOptions(string name) { } public EffectOptions(object owner) { } public EffectOptions(int count) { } public EffectOptions(Point point) { } }</code>
Lors de l'appel d'un constructeur avec une valeur nulle, telle que EffectOptions options = new EffectOptions(null);
, le système de résolution de surcharge suivra les étapes suivantes :
1. Identifiez les constructeurs applicables :
2. Exclure les constructeurs non applicables :
3. Constructeur d'analyse de paramètres :
4. Identifiez les meilleurs candidats applicables :
Dans ce cas, l'ambiguïté surgit car :
object[]
et string
sont tous deux considérés comme « spécifiques » (il n'y a plus de spécifique entre les deux). Détails de l'algorithme :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!