zoukankan      html  css  js  c++  java
  • 对泛型T的属性操作

    代码
     public class PropertyHelper<T> 
       {      
          
    private T entiy;      

          
    public PropertyHelper(T t)       

        {  entiy 
    = t;            

        BindingAttr 
    = BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance;      

        }      

      
    public BindingFlags BindingAttr { getset; }      
      
    public T Entiy  { get { return entiy; } }   

      
    public object this[string name] { get{  return this[name, null];  } set { this[name,null= value; }}       
     
    public object this[string name,object[] index] { get {  if (name == nullthrow new ArgumentNullException("name");  object obj = null
    try  {  
           PropertyInfo info 
    = entiy.GetType().GetProperty(name, BindingAttr);  
           obj 
    = info.GetValue(entiy, index);  }  
    catch (Exception e)  
    throw new Exception(e.Message);   }  
      
    return obj;  } 
    set  {  if (name == null)  throw new ArgumentNullException("name"); 
           
    try   { PropertyInfo info = entiy.GetType().GetProperty(name, BindingAttr);
           info.SetValue(entiy,value,index); 
         }  
         
    catch (Exception e)  
         { 
           
    throw new Exception(e.Message); 
          } 
        } 
       } 
     }

    PropertyHelper<BomG> bh = new PropertyHelper<BomG>(bomg);

    string name = bh["Name"] as string;

    2.string dec = "qazxswedc";

    ProPertyHelper<string> dechelper = new PropertyHelper<string>(dec);

    int leng = (int)dechelper["Length"] ;

  • 相关阅读:
    Lookup Method
    ReLocated Record in Grid
    Call Form By FormString
    Send Mail
    十大已亡或正在灭亡的电脑技术
    一个程序员的内心自白摘录
    数据库中null和''具体的区别
    gridview 横向显示
    Exchange2007获取OWA邮箱容量的代码
    owa实现清空邮箱的代码
  • 原文地址:https://www.cnblogs.com/johnwonder/p/1665830.html
Copyright © 2011-2022 走看看