TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2565 2.71K
День 2121. #ЗаметкиНаПолях
Используем Оператор Неявного Приведения для Сокращения Кода

Если вы используете кэш или любое другое хранилище типа ключ-значение, часто полезно, чтобы ключи кэша были структурированы, например, имели префикс, значение ключа и его версию.

Поэтому их можно сделать строго типизированными:
public class CacheKey
{
private readonly string _key;

public CacheKey()
{
_key = $"{Prefix}-{Key}-{Version}";
}
public required string Prefix { get; init; }
public required string Key { get; init; }
public required int Version { get; init; }

public string GetKey() => _key;
}

Тогда получить значение из кэша можно так:
var value = 
await db.StringGetAsync(сacheKey.GetKey());


Метод StringGetAsync принимает строку, поэтому нужно вызвать метод GetKey, чтобы получить строковое представление CacheKey. Но было бы здорово обойтись без вызова GetKey.

Оператор неявного приведения
Обновим класс CacheKey, добавив оператор неявного приведения:
public class CacheKey
{
private readonly string _key;

public CacheKey()
{
_key = $"{Prefix}-{Key}-{Version}";
}

public required string Prefix { get; init; }
public required string Key { get; init; }
public required int Version {get; init; }

public static implicit operator
string(CacheKey key) => key._key;
}

Теперь переменная типа CacheKey будет неявно приведена к строке, и мы можем получить значение кэша по ключу без вызова GetKey:
var value =
await db.StringGetAsync(cacheKey);


Источник: https://josef.codes/use-the-implicit-operator-to-reduce-noise-in-your-code/
  • 👍 36
More from @netdeveloperdiary
  1. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  2. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  3. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  4. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  5. Oct 3, 2026Post #3360
  6. Oct 3, 2026День 2803. #Оффтоп Чем Заняться, Пока Работают Агенты? У VS Code Есть Ответ Сейчас большую…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →