Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Standardparametervärdet för måste vara en kompileringskonstant
Exempel
Följande exempel genererar CS1736:
// CS1736.cs
public unsafe class C
{
static void F(int i = G())
{
// ...
}
static int G() => 0;
Ett standardparametervärde utvärderas när metoden anropas. Vad ett värde kan vara när metoden så småningom anropas kan inte fastställas i förväg vid deklarationstillfället om inte det värdet är konstant vid kompileringstid.
Så här åtgärdar du det här felet
Om ett dynamiskt utvärderat värde krävs bör du överväga att använda en kompileringskonstant som ett markörvärde som sedan kontrolleras vid körning:
static void F(int i = -1)
{
if(i == -1) i = G();
//...
}