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
{ }
}
this的作用--转载的更多相关文章
- java中关键字volatile的作用(转载)
转载:http://blog.csdn.net/orzorz/article/details/4319055 用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对 ...
- OPTIMIZE TABLE的作用--转载
当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删 除操作后在数据文件中留下碎片所致.Discuz! 在系统数设置界面提供了数据表优化的功能,可以去除删除操作后留下的数据文件 ...
- java 线程Thread.Sleep详解 Thread.Sleep(0)的作用(转载)
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢? 思考下面这两个问题: 1.假设现在是 2008-4-7 12:00:00.000,如果 ...
- SET QUOTED_IDENTIFIER OFF语句的作用 转载
SET QUOTED_IDENTIFIER ON SELECT * FROM "USER" WHERE a='netasp' SET QUOTED_IDENTIFIER ON SE ...
- HTTP协议的消息头:Content-Type和Accept的作用 转载https://www.cnblogs.com/lexiaofei/p/7289436.html
一.背景知识 1.概述 Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报头结构:通用报头|响应报头|实体报头 Acc ...
- spring各jar包作用(转载)
除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有 ...
- 【Java讨论】引用类型赋值为null对加速垃圾回收的作用(转载)
:有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾.其他人则认为这没有任何帮助.是否赋值为null的问题首先在方法的内部被人提起.现在,为了更好的阐述提出的问题,我们来撰写一个Wi ...
- mvc 当中 [ValidateAntiForgeryToken] 的作用 转载https://www.cnblogs.com/hechunming/p/4647646.html
一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...
- mysql中OPTIMIZE TABLE的作用
转载▼ 1.先来看看多次删除插入操作后的表索引情况 mysql> SHOW INDEX FROM `tbl_name`; +----------+------------+----------- ...
随机推荐
- 基于android studio编译工具下的android开发之IBeacon 例子
想直接看主要内容的请调到红字下面. 之所以会接触到android下的IBeacon,是因为我自己导师给的任务.一个网址http://estimote.com/和一句话:看看这个网站,然后试下在安卓手机 ...
- [ES] 基础概念
Elasticsearch是基于Luence实现的一款搜索引擎,支持分布式和集群,并且搜索近实时,主要用于搜索和数据分析 索引 index 可以理解为数据库中的database,存储的是实际数据,因为 ...
- CSS实现单行与多行文字省略(truncation)
在上一篇文章小div布局之卡片堆叠(card-stacking)中有多行文字溢出省略的效果,这篇文章就对这种效果(包括单行文字溢出省略)的实现做个简单的记录,以防自己忘记.具体来说,就是要实现这种文字 ...
- vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度
最近用element来做项目,在开发的过程中,突然发现页面的操作和切换在数据量大的时候相当卡,后来提了个issue,在furybean解答后才知道,我每个单元格都加了tooltip,会生成大量的节点, ...
- 敏捷开发Scrum
- 重启SQL Server——总是好事?
在实际工作中,我经常看到——有时人们定期重启SQL Server!我们都希望接受,SQL Server的定期重启并不真的是一个好主意.但在今天的文章里,我想进一步讨论下,当你定期重启你的SQL Ser ...
- Ionic2学习笔记(9):访问本地设备
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html Ionic2提供了访问本地设备的方法,但是需要安装 ...
- php页面静态化技术;学习笔记
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ASP.NET MVC使用Areas后怎样获取Area(区域)的名称
写此随笔,目的只为今后在ASP.NET MVC项目中再用到Area(区域)时作为备查. 获取当前Area(区域)名称的方法是: ViewContext.RouteData.DataTokens[&qu ...
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...