Привет всем! Есть массив к которому периодически обращаются извне. Этот массив инициализируется 1 раз и больше его менять нельзя. Например такой массив:
static(или const) KeyCode[] arr = {v1, v2, v3, v4};
Пока не знаю статиком или константным его сделать, но суть в том, что менять его содержимое так: arr[i]=x; нельзя. Однако переменные v могут менять своё содержимое и это должно быть видно через массив. KeyCode - это enum, v1-4 тоже enum-ы. Хожу воокруг да около, в чем проблема: этот массив берет и копирует в себя содержимое enum, то есть в нем копии переменных, а не сами исходные переменные. Если arr был бы классом, то все было бы как надо: можно было бы не заниматься присвоением arr[i] нового значения чтобы изменение содержимого его переменных можно было увидеть через массив. Как можно такое провернуть?
Судя по всему, вы хотите, чтобы элементы вашей коллекции можно было изменять внутри вашего класса, но не снаружи.
Это проще всего сделать так:
class Test
{
private readonly KeyCode[] arr = { KeyCode.A, KeyCode.B, KeyCode.C, KeyCode.D };
public ReadOnlyCollection<KeyCode> Arr { get; }
public Test()
{
Arr = Array.AsReadOnly(arr);
}
}
Теперь изменения, сделанные через arr
, будут видны через Arr
:
Console.WriteLine(Arr[0]); // A
arr[0] = KeyCode.Z;
Console.WriteLine(Arr[0]); // Z
//Arr[0] = KeyCode.A; // <-- не скомпилируется
Виртуальный выделенный сервер (VDS) становится отличным выбором
Можно ли при обращение ReadProcessMemory процесса вернуть ошибку?если возможно то с примеромЦель - запретить в нужном моменте считывать память
Здравствуйте! В методе есть две переменные(операнда) и операторКаждая RadioButton соответствует своему оператору