@KarambyG

Как использовать имя свойства класса из переменной?

Можно ли получить имя свойства из переменной? Чтоб потом к ней обратится? И как это сделать?

Пример, как должно работать:
string prop = "money";
MyData.prop++; // MyData.money будет увеличено на 1.


P.S. для тех кто не понял, свойства prop у класса MyData нету :)
  • Вопрос задан
  • 91 просмотр
Решения вопроса 3
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Перегрузка индексатора
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
Ответ написан
Комментировать
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Нет, нельзя

Но есть несколько обходных вариантов:

- ExpandoObject
- Делаешь MyData словарем
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
Dynamic. Выбирайте любое.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы