Почему C # запрещает чтение только локальных переменных? - PullRequest
102 голосов
/ 14 января 2009

Дружеская дискуссия с коллегой по этому поводу. У нас есть какие-то мысли по этому поводу, но нам интересно, что об этом думает SO-группа?

Ответы [ 13 ]

0 голосов
/ 18 октября 2017

используйте ключевое слово const, чтобы сделать переменную только для чтения.

ссылка: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/const

public class SealedTest
{
    static void Main()
    {
        const int c = 707;
        Console.WriteLine("My local constant = {0}", c);
    }
}
0 голосов
/ 12 июля 2016

Вы можете объявить локальные переменные только для чтения в C #, если вы используете интерактивный компилятор C # csi:

>"C:\Program Files (x86)\MSBuild\14.0\Bin\csi.exe"
Microsoft (R) Visual C# Interactive Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.

Type "#help" for more information.
> readonly var message = "hello";
> message = "goodbye";
(1,1): error CS0191: A readonly field cannot be assigned to (except in a constructor or a variable initializer)

Вы также можете объявить локальные переменные только для чтения в формате сценария .csx.

0 голосов
/ 14 января 2009

Я думаю, это потому, что функция, имеющая переменную только для чтения, никогда не может быть вызвана, и, вероятно, что-то в ней выходит из области видимости, и когда вам нужно это сделать?

...