私は読み取り専用REF REF as describedを返すメソッドを書きたい:「機能は、メンバーが変異のためにそれらをさらすことなく参照で変数を返すことができます。」C#7.2でreadonlynessをreadonlynessに適用するにはどうすればよいですか?
残念ながら、私のコードは、このような変異をコンパイルし、実行します。それを変更できないようにするにはどうすればよいですか?それは良い理由のために読んだだけです。コンパイラエラーが予想されます。さらに私は何かをしなければならないのでしょうか? 200は201に変更されています。私はそれを望んでいません。
internal class TryClass
{
private static int _result = 0;
public static ref readonly int Multiply(int a, int b)
{
_result = a * b;
return ref _result;
}
}
internal class Program
{
private static void Main(string[] args)
{
int x = 10;
int y = 20;
var rez = TryClass.Multiply(x, y);
rez++;
Console.WriteLine(rez);
Console.ReadLine();
}
}
@MethodMan C#7.2の新しい 'ref readonly'構文を完全には読まなかったと思います。 –
' TryClass.Multiply'の前に 'ref'キーワードを忘れました(そして' var rez'の前に対応する 'ref readonly')そのため、読み取り専用の参照ではなく、コピーを返すようにします:https://docs.microsoft.com/en-us/dotnet/csharp/reference-semantics-with-value-types#ref-readonly-returns – UnholySheep