网站如何做播放线路,成立公司在什么网站,代申请可信网站,企业信息公示管理系统官网概述this在C#中有多种用法#xff0c;也比较常见#xff0c;这节主要针对它常用的四种用法展开讲解.用法1:构造函数串联执行;用法2:通过this区分传参和类中全局的定义;用法3:方法扩展类;用法4:将对象作为参数传递;代码实例using System.Text;namespace Caliburn.Micro.Hello.…概述 this在C#中有多种用法也比较常见这节主要针对它常用的四种用法展开讲解.用法1:构造函数串联执行;用法2:通过this区分传参和类中全局的定义;用法3:方法扩展类;用法4:将对象作为参数传递;代码实例using System.Text;namespace Caliburn.Micro.Hello.ViewModels
{public class ThisUsageViewModel : Screen, IViewModel{private StringBuilder stringBuilder new StringBuilder();public string DisplayInfo { get; set; }public ThisUsageViewModel(){DisplayName ThisUsageViewModel;DisplayInfo 【1】this is ctor one;stringBuilder.AppendLine(DisplayInfo);DisplayInfo 【2】this is ctor two;stringBuilder.AppendLine(DisplayInfo);DisplayInfo 【3】this is CallMember;CallMember(DisplayInfo);stringBuilder.AppendLine(TestHelper.ObjectTransfer(this));//用法4:将对象作为参数传递DisplayInfo stringBuilder.ToString();}/// summary/// 用法1:构造函数串联执行/// /summary/// param nameflag/parampublic ThisUsageViewModel(bool flag) : this(){}public void CallMember(string DisplayInfo){this.DisplayInfo DisplayInfo;//用法2:通过this区分传参和类中全局的定义stringBuilder.AppendLine(this.DisplayInfo);this.ExtensionMethod();}public void ExtensionMethod(){double aHeight 175;double bHeight 1.82;stringBuilder.AppendLine($【4】{aHeight.CMToM()});stringBuilder.AppendLine($【5】{bHeight.MToCM()});}}/// summary/// 用法3:方法扩展类/// /summarypublic static class DoubleExtension{public static double MToCM(this double value){return value * 100;}public static double CMToM(this double value){return value / 100;}}public class TestHelper{public static string ObjectTransfer(ThisUsageViewModel thisUsageView){thisUsageView.DisplayInfo 【6】this is Object Transfer;return thisUsageView.DisplayInfo;}}
}运行结果用法讲解1. 串联构造函数 构造函数通过继承this(),新的构造函数执行时候会先执行类中默认的无参构造函数然后再执行新的构造函数比如本实例中如果实例化了一个类var thisUsageViewModel new ThisUsageViewModel(true)这个类会先执行ThisUsageViewModel()中的代码再执行ThisUsageViewModel(bool flag) : this()里的代码用法讲解2. 通过this区分传参和类中全局的定义 通过加前缀this代表调用的是类中的全局变量、属性或者方法尤其是方法的传参和类中的变量名一致时需要通过this区分用法讲解3. 方法扩展类 如本实例的类DoubleExtension中的MToCM和CMToM第一个参数用this标注代表是要扩展的类型然后类和方法都需要是公共的静态类型这种我们就可以通过double.MToCM()或double.CMToM去调用扩展方法用法讲解4. 将对象作为参数传递 如本实例的stringBuilder.AppendLine(TestHelper.ObjectTransfer(this));//用法4:将对象作为参数传递this实际上就是实例化了一个对象作为参数进行传递.源码下载 链接https://pan.baidu.com/s/1RAMFfy-Kjb01f7PUevP_7w提取码6666