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"] ;

  • 相关阅读:
    判断一个值是不是数字
    webpack起的项目怎么用手机访问?
    vue 父子组件数据双向绑定
    js取整
    封装加减乘除函数 解决JS 浮点数计算 Bug
    javascript笔记 (持续更新)
    ajax请求的原生js实现
    程序员の健康和效率装备列表,普通人也能参考
    Java static,final 基本概念
    Download EditPlus Text Editor
  • 原文地址:https://www.cnblogs.com/johnwonder/p/1665830.html
Copyright © 2011-2022 走看看