В таких языках, как C ++, существует довольно много разных вариантов использования ключевого слова "const", разработчикам частично легко передавать постоянные параметры, а также постоянные указатели постоянных значений.
Это не так просто в C #.
Нам нужно создать неизменяемый класс по определению, что означает, что после создания экземпляра его нельзя изменить программным способом.
В Java немного проще, чем в C # из-за ключевого слова final и его использования.
Давайте рассмотрим этот пример и посмотрим, насколько он неизменен ..
public sealed class ImmutableFoo
{
private ImmutableFoo()
{
}
public string SomeValue { get; private set; }
//more properties go here
public sealed class Builder
{
private readonly ImmutableFoo _instanceFoo = new ImmutableFoo();
public Builder SetSomeValue(string someValue)
{
_instanceFoo.SomeValue = someValue;
return this;
}
/// Set more properties go here
///
public ImmutableFoo Build()
{
return _instanceFoo;
}
}
}
Вы можете использовать это так
public class Program
{
public static void Main(string[] args)
{
ImmutableFoo foo = new ImmutableFoo.Builder()
.SetSomeValue("Assil is my name")
.Build();
Console.WriteLine(foo.SomeValue);
Console.WriteLine("Hit enter to terminate");
Console.ReadLine();
}
}