<强>用法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; 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#这关键字用法代码详解