this的作用--转载
-- 作用 转载 this
2023-09-11 14:21:28 时间
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppConsole { class Program { /// <summary> /// 主程序入口 /// </summary> /// <param name="args"></param> static void Main(string[] args) { //0>声明实体 User user = new User(); user.ID = 1; user.UserName = "lichaoqiang"; //第【一】种用法:this用作索引器 public object this[string name]{……} user["UserID"] = 1; Console.WriteLine("第【一】种用法:this用作索引器"); //第【二】种用法:this用作参数传递 user.Say(this); Console.WriteLine("第【二】种用法:this用作参数传递"); user.Said(); //第【三】种用法:this() public VIP:this(){ } VIP vip = new VIP("yezi"); vip.Said(); Console.WriteLine("第【三】种用法:this()"); //第【四】种用法: this扩展VIP类 public static Sing(this User user){……} Console.WriteLine("第【四】种用法: this扩展VIP类"); user.Sing(); Console.Read(); } } /// <summary> /// 普通用户 /// </summary> public class User { /// <summary> /// 全局变量 /// </summary> Dictionary<string, object> dictInfo = null; /// <summary> /// 构造器 /// </summary> public User() { dictInfo = new Dictionary<string, object>(); } /// <summary> /// 构造函数重载 /// </summary> /// <param name="UserID"></param> /// <param name="UserName"></param> public User(int UserID, string UserName) { this.UserName = UserName; this.ID = UserID; } /// <summary> /// this,第【1】种用法,索引器 /// </summary> /// <param name="name"></param> /// <returns></returns> public object this[string name] { get { return dictInfo[name]; } set { dictInfo[name] = value; } } /// <summary> /// 编号 /// </summary> public int ID { get; set; } /// <summary> /// 用户名 /// </summary> public string UserName { get; set; } /// <summary> /// this第【2】种用法,当做参数传递 /// </summary> public void Said() { new VIP().Say(this); } } /// <summary> /// 会员 /// </summary> public class VIP : User { /// <summary> /// 积分 /// </summary> public int integral { get; set; } /// <summary> /// 构造函数 /// </summary> public VIP() { ID = 520; integral = 1000; } /// <summary> /// this第【3】种用法,通过this()调用无参构造函数 /// </summary> /// <param name="UserName"></param> public VIP(string UserName) : this() { this.UserName = UserName; } /// <summary> /// 构造函数重载 /// </summary> /// <param name="UserID"></param> /// <param name="UserName"></param> public VIP(int UserID, string UserName) : base(UserID, UserName) { } /// <summary> ///Say方法 /// </summary> /// <param name="user"></param> public void Say([LCQAttribute] User user) { Console.WriteLine(string.Format("嗨,大家好!我的编号是{0},大家可以叫我{1}!", user.ID, user.UserName)); } } /// <summary> /// 静态类,来扩展User类 /// </summary> public static class Helper { /// <summary> /// 第【4】种用法: this扩展User类 /// </summary> /// <param name="user"></param> public static void Sing(this User user) { Console.WriteLine(string.Format("嗨,大家好!我的编号是{0},大家可以叫我{1}!", user.ID, user.UserName)); } } /// <summary> /// 特性类:指定特性仅适用于方法和方法的参数 /// </summary> [System.AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter)] public class LCQAttribute : System.Attribute { } }
相关文章
- docker参数--restart=always的作用
- mysql中参数--init-file的作用是什么呢?
- .NET框架- in ,out, ref , paras使用的代码总结 C#中in,out,ref的作用 C#需知--长度可变参数--Params C#中的 具名参数 和 可选参数 DEMO
- 【CSS进阶】伪元素的妙用--单标签之美
- 【微信小程序】--JSON 配置文件作用(三)
- 【微信小程序】--创建第一个小程序项目&项目文件的作用(二)
- jsp注释<%-- --%>和<!-- -->的区别
- Flutter移动电商实战 --(36)FlutterToast插件使用
- Apache Spark源码走读之1 -- Spark论文阅读笔记
- Python爬虫技术--基础篇--访问数据库(下)
- CMake的作用和价值--概念简介
- 面向对象编程案例04--访问控制
- 生命周期演示--从加载--渲染--销毁
- (独孤九剑)--文件系统
- 浅析Docker容器的两种运行模式及 docker run 的 --rm 参数的作用及与 docker rm 的区别
- 免费的天气预报API--谷歌,雅虎,中央气象台
- 各种语言的注释总结--from wiki
- Java--Socket通信
- 深入分析 Java 中的中文编码问题--转
- 漫说中介者模式--创业公司成长记
- 千万不要使用xfce和KDE版Manjaro Linux--之荒谬言论