Krishna Veni Ответов: 2

Это изменение переменных только для чтения


Как правило, постоянные переменные вводятся в момент объявления.он имеет фиксированное значение, которое не может быть изменено, но radonly varibles intalized либо во время объявления, либо в конструкторе, но это изменение переменных во время выполнения программы. intaliztion.is изменилось оно или нет



пожалуйста, помогите мне.

спасибо.

Что я уже пробовал:

Как правило, постоянные переменные вводятся в момент объявления.он имеет фиксированное значение, которое не может быть изменено, но radonly varibles intalized либо во время объявления, либо в конструкторе, но это изменение переменных во время выполнения программы. intaliztion.is изменилось оно или нет

Maciej Los

Ну что ж, вы можете это проверить.

Krishna Veni

переменные readonly изменяются во время выполнения (исключение программы), но как только readonly совпадает с константой, а также статический модификатор позволяет использовать переменные readonly. pls ответить

NotPolitcallyCorrect

Я понятия не имею, о чем вы на самом деле просите. Но мне кажется, что Мацей на правильном пути. Вы можете легко попробовать это сами.

Maciej Los

Я тоже понятия не имею! :смеяться:

2 Ответов

Рейтинг:
1

Maciej Los

Еще одну полезную статью можно найти здесь: Константа против Readonly против статических ключевых слов в C#[^]
а здесь: Практическая разница между Const & ReadOnly[^]

Для получения более подробной информации, пожалуйста, смотрите:
Учебник По Свойствам (C#)[^]
Использование Свойств (Руководство По Программированию На C# )[^]

Что касается свойств класса только для чтения...
Используйте его, если вы хотите запретить пользователю изменять значение, возвращаемое этим свойством. Пример:

void Main()
{
	Person p = new Person("Maciej", "Los", new DateTime(1968,1,1));
	Console.WriteLine("Person details: {0} {1}, age: {2}", p.FirstName, p.LastName, p.Age);
	p.DateOfBirth = new DateTime(1970,2,12);
	Console.WriteLine("Person details: {0} {1}, age: {2}", p.FirstName, p.LastName, p.Age);
}

// Define other methods and classes here
public class Person
{
	private string sFName = string.Empty;
	private string sLName = string.Empty;
	private DateTime dDob = new DateTime(1900,1,1);
	
	public Person(string _FName, string _LName, DateTime _DateOfBirth)
	{
		sFName = _FName;
		sLName = _LName;
		dDob = _DateOfBirth;
	}
	
	public string FirstName
	{
		get { return sFName; }
		set { sFName = value; }
	}
	
	public string LastName
	{
		get { return sLName; }
		set { sLName = value; }
	}
	
	public DateTime DateOfBirth 
	{
		get { return dDob; }
		set { dDob = value; }
	}
	
	public int Age
	{
		get{ return DateTime.Today.Year - dDob.Year; }
	}
	
}

Выше код возвращает:
Person details: Maciej Los, age: 49
Person details: Maciej Los, age: 47


Graeme_Grant

1968 год был хорошим ;)

Maciej Los

:смеяться:
Ура!
Мацей

Рейтинг:
0

RickZeeland

Я думаю, что эта статья объясняет то, что вы хотите знать: Константный статический против против только для чтения в C#[^]


Maciej Los

5ед!