英語で読む

次の方法で共有


コンパイラ エラー CS8171

参照を使用して値渡し変数を初期化することはできません

次の例では CS8171 が生成されます。

C#
// CS8171.cs (8,13)

class Test
{
    void A()
    {
        int a = 123;
        ref int x = ref a;
        var y = ref x;
    }
}

var y = ref x は暗黙的に int y = ref x であり、int y は値渡し変数であることに注意してください。

このエラーを解決するには

代入の右辺から ref 修飾子を削除すると、このエラーは解決します。

C#
class Test
{
    void A()
    {
        int a = 123;
        ref int x = ref a;
        var y = x;
    }
}