public class Foo : Dictionary<string, int>
{
public new int this[string key]
{
get => this.GetValueOrDefault(key);
set => base[key] = value;
}
}
Foo f = [];
string k = "key";
Console.WriteLine($"Value not set: {f[k]}");
f[k]++;
Console.WriteLine($"Value ++: {f[k]}");
f[k]++;
Console.WriteLine($"Value ++: {f[k]}");
f[k]--;
Console.WriteLine($"Value --: {f[k]}");
Value not set: 0
Value ++: 1
Value ++: 2
Value --: 1
int a { get; }
int a { get; private set; }
Стоит ли мне двигаться дальше в изучении C++ или пока не поздно пересмотреть свои взгляды, касательно моего выбора?
Не поздно начинать своё обучение
дайте пару советов и пожеланий, касаемо обучения
Будут ли проблемы в трудоустройстве, если выбор останется неизменным
И есть вообщем такая потребность, интегрировать окно Hammer Editor (Создание уровней для игр на движке Source) в проект.
Перегревается ПК и через пару часов отключает программу...нужно минимизировать затраты на программу
/// <summary>
/// Класс [де]сериализуемый MemoryPack
/// <br />Необходим для добавления всем наследуемым классам метода сериализации через расширение
/// <br />Наследование данного метода не работает из-за каста в целевой класс
/// </summary>
public class Packable { }
/// <summary>
/// Расширение для [де]сериализуемых классов MemoryPack
/// </summary>
public static class PackableExtension
{
/// <summary>
/// Сериализовать класс в массив байтов
/// </summary>
/// <typeparam name="T">Целевой класс</typeparam>
/// <param name="data">Объект целевого класса</param>
/// <returns></returns>
public static byte[] Pack<T>(this T data) where T : Packable
=> MemoryPackSerializer.Serialize(data);
/// <summary>
/// Десериализовать класс из массива байтов
/// </summary>
/// <typeparam name="T">Целевой класс</typeparam>
/// <param name="data">Массив байт</param>
/// <returns></returns>
public static T Unpack<T>(this byte[] data) where T : Packable
=> MemoryPackSerializer.Deserialize<T>(data);
}