Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De standaardparameterwaarde moet een compilatieconstante zijn
Opmerking
In het volgende voorbeeld wordt CS1736 gegenereerd:
// CS1736.cs
public unsafe class C
{
static void F(int i = G())
{
// ...
}
static int G() => 0;
Er wordt een standaardparameterwaarde geëvalueerd bij de aanroep van de methode. Wat een waarde kan zijn wanneer de methode uiteindelijk wordt aangeroepen, kan niet vooraf worden bepaald tijdens declaratietijd, tenzij die waarde constant is tijdens het compileren.
Deze fout corrigeren
Als een dynamisch geëvalueerde waarde vereist is, kunt u overwegen om een compileertijdconstante te gebruiken als een markeringswaarde die vervolgens tijdens runtime wordt gecontroleerd:
static void F(int i = -1)
{
if(i == -1) i = G();
//...
}