Как мне сделать деженерики для моих методов работы со структурой
У меня есть структура данных:
public struct ConfigData
{
public bool AlwaysOnTop;
public string Test;
}
Есть какой-то такой класс:
internal class Config
{
private readonly ConfigData _config = new ConfigData();
public Config()
{
}
public void SetValue(string key, dynamic value)
{
}
}
В нем я хочу типизировать для метода SetValue
параметры key
и value
как допустим в тайп скрипте, чтобы редактор мне подсказывал какие я могу передать ключи, а когда я ввел ключ, он бы мне показал какой тип данных ожидается в value.
Вот таким способом я бы это реализовал в TypeScript:
interface IConfig
{
alwaysOnTop: boolean;
test: string;
}
const config: IConfig =
{
alwaysOnTop: true,
test: ""
};
function get<TKey extends keyof IConfig>(key: TKey): IConfig[ TKey ]
{
return config[ key ];
}
function set<TKey extends keyof IConfig>(key: TKey, value: IConfig[ TKey ]): void
{
config[ key ] = value;
}
Я немного по лучше подумал и думаю, что лучшим вариантом будет использовать Property с get/set. Но вопрос все же интересен.