Member 13808254 Ответов: 1

Можем ли мы динамически изменять имя свойства В C#


это мой класс:
public partial class DaysLast       
      {      
        public Nullable<int> DAY10 { get; set; }
        public Nullable<int> DAY11 { get; set; }
        public Nullable<int> DAY12 { get; set; }
        public Nullable<int> DAY13 { get; set; }
        public Nullable<int> DAY14 { get; set; }
        public Nullable<int> DAY15 { get; set; }
        public Nullable<int> DAY16 { get; set; }      
      }


    DaysLast Prod = new DaysLast();  
    for (int i = 0; i < 16; i++)               
            {
     if (test1.date==test2.date){

      Prod[i]=test2[i].Hour
     }

    }

Мой вопрос заключается в том, можем ли мы динамически изменять имя свойства. Так что я буду иметь ценность
{DAY10 =5,Day11=2, Day12=null,....}
or   {DAY7 =5,Day8=2, Day10=2,....}

Я попытался использовать динамическую гибкую = новую систему.Динамически.ExpandoObject();
но работа со значениями и именем свойства не изменилась.
dynamic flexible = new System.Dynamic.ExpandoObject(); 
             flexible.DAY00 =test2[i].Hour


Что я уже пробовал:

Мой вопрос заключается в том, можем ли мы динамически изменять имя свойства. Так что я буду иметь ценность
{DAY10 =5,Day11=2, Day12=null,....}
or   {DAY7 =5,Day8=2, Day10=2,....}

Я пытался использовать
dynamic flexible = new System.Dynamic.ExpandoObject();
но работа со значениями и именем свойства не изменилась.

Christiaan van Bergen

Изменение имен свойств? Нафаик. Но, возможно, если вы расскажете нам немного больше о том, почему вы хотели бы иметь эту способность, мы сможем помочь вам найти подходящий способ сделать именно это.

OriginalGriff

Почему ты думаешь, что это хорошая идея?
Что вы пытаетесь сделать такого, что считаете необходимым и полезным?

Member 13808254

Это требовалось для моего проекта.Вот почему я так думаю

RmcbainTheThird

Это может потребоваться, но каково оправдание? К чему приведет изменение имен свойств? Какую проблему она решит?

1 Ответов

Рейтинг:
2

#realJSOP

Если вы настаиваете на желании "изменить имя свойства (что лично я считаю ужасной идеей), просто создайте пару методов расширения getter/setter, которые делают то, что вы хотите:

public static int MyRenamedProperty(this MyObject obj)
{
    return obj.DAY10;
}

public static void MyRenamedProperty(this MyObject obj, int value)
{
    obj.DAY10 = value;
}


Обратите внимание, что это всего лишь предложение, и может представлять или не представлять ваш лучший вариант, и что мне все равно в любом случае.