Вы говорите о локальных переменных.
string
- это уже неизменный тип. Значения inputFolder
и outputFolder
никогда не изменятся. Конечно, вы можете присвоить ему новые значения, но вы находитесь внутри одного метода, насколько большим должен быть этот метод, чтобы вы забыли не назначать ему новые значения.
Если значения будут переданы другим методам, они будут переданы как копии, поэтому то, что происходит внутри метода, не повлияет на фактические значения inputFolder
и outputFolder
.
Если вы все еще настаиваете на том, чтобы эти значения были неизменяемыми, тогда рассмотрите возможность использования типов, разработанных как неизменяемые.
Значение кортежей
(Input string, Output string) folders = (args[0], args[1]);
// Usage
folders.Input
folders.Output
Или неизменный словарь (требуется пакет System.Collections.Immutable NuGet)
var folders =
new ImmutableDictionary<string, string>().Add("input", args[0])
.Add("output", args[1]);
// Usage
folders["input"]
folders["output"]