zoukankan      html  css  js  c++  java
  • this的作用--转载

    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
        {
    
        }
    }
    
  • 相关阅读:
    Hack World和CTFHub布尔注入记录
    MySQL updatexml()、extractvalue() 报错型SQL注入
    常见的Web源码泄漏漏洞及其利用(转载记录)
    大白
    [强网杯 2019]随便注
    [极客大挑战 2019]LoveSQL 1
    Mysql--事物
    Android深度探索-卷1第十章心得体会
    Android深度探索-卷1第八章心得体会
    Android深度探索-卷1第九章心得体会
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/6119598.html
Copyright © 2011-2022 走看看