Compilerfout CS1736

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();
        //...
    }