c#这关键字用法代码详解

  

<强>用法1为原始类型扩展方法
  

  

先说一下,这后面跟的类型,就是要拓展方法的类型。注意要写在静态类中的静态方法,不然有些情况下访问

     ///& lt; summary>///扩展类用于为原始类扩展方法///& lt;/summary>   公共静态类AM_Extends   {///& lt; summary>///为字符串类扩展了一个孩子的方法,实现某功能///& lt;/summary>///& lt;参数name=" str祝辞& lt;/param>///& lt;参数name=" new_str祝辞& lt;/param>   公共静态空虚的孩子(这个字符串str,字符串new_str)   {   对象obj=str;   str=new_str;   }   }      定义扩展方法            私人空间Form1_Load(对象发送方,EventArgs e)   {   字符串相约=" 123 ";   字符串st2=" ";   字符串st3=" ";   st3=st2.Child(死神);//st3的值为“123”   }      调用实例      

<强>用法2这代表当前类的实例对象
  

  

<强>用法3用这串联构造函数

        公开课测试   {   公共测试()   {   Console.WriteLine(“无参构造函数”);   }//这个()对应无参构造方法测试()//先执行测试(),后执行测试(字符串文本)   公共测试(字符串文本):()   {   Console.WriteLine(文本);   Console.WriteLine(“有参构造函数”);   }   }      

用法4索引器(基于索引器封装EPList,用于优化大数据下频发的Linq查询引发的程序性能问题,通过索引从列表集合中查询数据)

        使用系统;   使用System.Collections.Generic;   使用来;   使用System.Reflection;   使用text;      名称空间MyDemo.Web   {///& lt; summary>///EPList支持为列表创建索引///& lt;/summary>///& lt; typeparam name=" T "祝辞类型& lt;/typeparam>   公开课EPList   {   #地区成员变量///& lt; summary>///索引///& lt;/summary>   私人List///缓存数据///& lt;/summary>   私人Dictionary<字符串,List比;m_CachedData=https://www.yisu.com/zixun/new字典<字符串,列表 ();>///<总结///列表数据源>/// m_ListData=new T <> ();>///<总结///通过索引值取数据>//////& lt;参数name=" fieldValues”内祝辞字段值& lt;/param>///& lt; returns> & lt;/returns>   公共List这(string [] indexFields]   {   得到   {   字符串键=字符串。加入(”、“indexFields);   如果(m_CachedData.ContainsKey(关键))返回m_CachedData(例子);   返回新List ();   }   }      # endregion      #地区公共方法///& lt; summary>///创建索引///& lt;/summary>///& lt;参数name=" indexFields祝辞索引字段& lt;/param>   公共空间方法CreateIndex (string [] indexFields)   {   如果(m_Index.Contains (indexFields))返回;   m_Index.Add (indexFields);   }///& lt; summary>///添加///& lt;/summary>///& lt;参数name=凹锹肌钡脑诩锹? lt;/param>   公共空间添加记录(T)   {   m_ListData.Add(记录);   m_Index。ForEach (indexFields=比;   {   字符串键=getKey(记录,indexFields);   如果(m_CachedData.ContainsKey(关键))   {   m_CachedData阀门(例子)(记录);   }   其他的   {   List列表=new List{记录};   m_CachedData。添加(键,列表);   }   });   }      # endregion      #地区私有方法///& lt; summary>///获取值///& lt;/summary>///& lt;参数name=凹锹肌钡脑诩锹? lt;/param>///& lt;参数name=白侄蚊痹谧侄蚊? lt;/param>///& lt; returns> & lt;/returns>   私有对象getValue (T记录字符串字段名)   {   型类型=typeof (T);   PropertyInfo PropertyInfo=type.GetProperty(字段名);   propertyInfo返回。GetValue(记录,null);   }///& lt; summary>///获取钥匙///& lt;/summary>///& lt;参数name=凹锹肌钡脑诩锹? lt;/param>///& lt;参数name=" indexFields祝辞索引字段& lt;/param>   私人字符串getKey (T记录,string [] indexFields)   {   List值=new List ();   foreach (var indexFields字段)   {   字符串值=https://www.yisu.com/zixun/Convert.ToString (getValue(记录,字段));   值。添加(字段+“:”+值);   }   返回字符串。加入(”、“、价值观);   }///& lt; summary>///获取钥匙///& lt;/summary>///& lt;参数name=" indexFields祝辞索引字段& lt;/param>///& lt;参数name=" fieldValues”内祝辞字段值& lt;/param>///& lt; returns> & lt;/returns>   私人字符串getKey (string [] indexFields、对象[]fieldValues)内   {   如果(indexFields。长度!=fieldValues.Length)返回string.Empty;   for (int i=0;我& lt;indexFields.Length;我+ +)   {   fieldValues[我]=内indexFields[我]+”:“+ fieldValues[我]内;   }   字符串键=字符串。加入(”、“fieldValues)内;   返回键;   }      # endregion   }   }      创建EPList

c#这关键字用法代码详解