既定のパラメーター値は、コンパイル時に定数である必要があります
例
CS1736 が生成される例は次のとおりです。
// CS1736.cs
public unsafe class C
{
static void F(int i = G())
{
// ...
}
static int G() => 0;
既定のパラメーター値は、メソッドの呼び出し時に評価されます。 メソッドが呼び出されるときの値は、コンパイル時に定数でない限り、宣言時に事前に決定しておくことはできません。
このエラーを解決するには
動的に評価される値が必要な場合は、実行時にチェックされるコンパイル時定数をマーカー値として使用することを検討してください。
static void F(int i = -1)
{
if(i == -1) i = G();
//...
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET