代码之家  ›  专栏  ›  技术社区  ›  jac

如何获取MyClass类型的属性的名称?

  •  1
  • jac  · 技术社区  · 16 年前

    我有一个自定义类(调用I字段),它实现了几个属性。其中一个属性是MaximumLength,它指定值可以是的最大长度。value属性是一个对象,因此可以将我设置为string、int、double等,然后我有一个类,其中包含类型字段的多个属性。所有字段属性都在构造函数中初始化,并且只能写入Field.Value属性。我要做的是,如果试图将Field.Value设置为对该字段而言太长的值,则抛出一个错误,然后实现InotifyPropertyChanged。我的问题是Value属性是泛型字段类的成员,我不知道如何获取该类中属性的名称。

    一个例子:

    public class Customer
    {
       private Field _firstName = new Field(typeof(string), 20);
    
       public Field FirstName
       {
          get
          {
             return _firstName;
          }
       }
    }
    
    public class Field
    {
       private Type _type;
       private int _maximumLength;
       object _value;
    
       public Field(Type type, int maximumLength)
       {
          _type = type;
          _maximumLength = maximumLength;
       }         
    
       public Object Value
       {
          get
          {
             return _value;
          }
          set
          {
             if (value.ToString().Length > _maximumLength)
             {
                throw(string.Format("{0} cannot exceed {1} in length.", property name, _maximumValue);
             }
             else
             {
                _value = value;
                OnPropertyChanged(property name);
             }
          }
       }
    }
    

    希望这足够清楚。

    9 回复  |  直到 16 年前