C#中this的用法,你用过几种?
C#中this的用法,你用过几种?【含源码示例】
摘自:http://www.2cto.com/kf/201110/107591.html
-
C#中的this用法,相信大家应该有用过,但你用过几种?以下是个人总结的this几种用法,欢迎大家拍砖,废话少说,直接列出用法及相关代码。
this用法1:限定被相似的名称隐藏的成员
/// <summary>
/// /******************************************/
/// /* this用法1:限定被相似的名称隐藏的成员 */
/// /******************************************/
/// </summary>
/// <param name="Name"></param>
public Person(string Name, string Sex)
{
this.Name = Name;
this.Sex = Sex;
}
this用法2:将对象作为参数传递到其他方法
/// <summary>
///Person 的摘要说明
/// </summary>
public class Person
{
/// <summary>
/// 姓名
/// </summary>
public string Name { set; get; }
/// <summary>
/// /*******************************************/
/// /* this用法2:将对象作为参数传递到其他方法 */
/// /*******************************************/
/// </summary>
public void ShowName()
{
Helper.PrintName(this);
}
}
/// <summary>
/// 辅助类
/// </summary>
public static class Helper
{
/// <summary>
/// 打印人名
/// </summary>
/// <param name="person"></param>
public static void PrintName(Person person)
{
HttpContext.Current.Response.Write("姓名:" + person.Name + "<br />");
}
}
this用法3:声明索引器
/// <summary>
/// 其它属性
/// </summary>
public NameValueCollection Attr = new NameValueCollection();
/// <summary>
/// /*************************/
/// /* this用法3:声明索引器 */
/// /*************************/
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string this[string key]
{
set
{
Attr[key] = value;
}
get
{
return Attr[key];
}
}
this用法4:扩展对象的方法
/// <summary>///Person 的摘要说明
/// </summary>
public class Person
{ /// <summary>
/// 性别
/// </summary>
public string Sex { set; get; }
}
/// <summary>
/// 辅助类
/// </summary>
public static class Helper
{
/// <summary>
/// /*****************************/
/// /* this用法4:扩展对象的方法 */
/// /*****************************/
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public static string GetSex(this Person item)
{
return item.Sex;
}
}
调用:
Person person = new Person();
person.GetSex();
四种用法完整代码如下:
show sourceusing System;
using System.Collections.Generic;
using System.Web;
using System.Collections;
using System.Collections.Specialized;
/// <summary>
///Person 的摘要说明
/// </summary>
public class Person
{
/// <summary>
/// 姓名
/// </summary>
public string Name { set; get; }
/// <summary>
/// 性别
/// </summary>
public string Sex { set; get; }
/// <summary>
/// 其它属性
/// </summary>
public NameValueCollection Attr = new NameValueCollection();
public Person()
{
}
/// <summary>
/// /******************************************/
/// /* this用法1:限定被相似的名称隐藏的成员 */
/// /******************************************/
/// </summary>
/// <param name="Name"></param>
public Person(string Name, string Sex)
{
this.Name = Name;
this.Sex = Sex;
}
/// <summary>
/// /*******************************************/
/// /* this用法2:将对象作为参数传递到其他方法 */
/// /*******************************************/
/// </summary>
public void ShowName()
{
Helper.PrintName(this);
}
/// <summary>
/// /*************************/
/// /* this用法3:声明索引器 */
/// /*************************/
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string this[string key]
{
set
{
Attr[key] = value;
}
get
{
return Attr[key];
}
}
}
/// <summary>
/// 辅助类
/// </summary>
public static class Helper
{
/// <summary>
/// /*****************************/
/// /* this用法4:扩展对象的方法 */
/// /*****************************/
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public static string GetSex(this Person item)
{
return item.Sex;
}
/// <summary>
/// 打印人名
/// </summary>
/// <param name="person"></param>
public static void PrintName(Person person)
{
HttpContext.Current.Response.Write("姓名:" + person.Name + "<br />");
}
}
调用示例:
show source//this用法1示例
Person person = new Person("小她", "女");
//this用法2示例
person.ShowName();
//this用法3示例
person["Height"] = "175cm";
Response.Write("身高:" + person["Height"] + "<br />");
person["Weight"] = "110kg";
Response.Write("体重:" + person["Weight"] + "<br />");
//this用法4示例
Response.Write("性别:" + person.GetSex() + "<br />");
由于时间关系,就不说太多,如有不足之处,恳请大家批评指正。
完整示例源码下载:http://up.2cto.com/2011/1013/20111013110305836.rar
摘自:零星碎事
C#中this的用法,你用过几种?的更多相关文章
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- SQL中distinct的用法
SQL中distinct的用法 1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出 ...
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
- jQuery中Animate进阶用法(一)
jQuery中animate的用法你了解多少呢?如果仅仅是简单的移动位置,显示隐藏,哦!天哪你在浪费资源!因为animate太强大了,你可以有很多意想不到的用法!让我们一起研究一下吧~~ 首先要了解j ...
- [转载]js中return的用法
一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return; 在大多数情况下,为事件处理函 ...
- js中this的用法
经过近几周的模拟面试题,我查询了一些资料,今天就来说说,在js中this的用法吧.方法有四:第一,用作全局变量,第二,用作表该对象,第三,用作构造函数,第四,用作call和applay
- jQuery中eq()方法用法实例
本文实例讲述了jQuery中eq()方法用法.分享给大家供大家参考.具体分析如下: 此方法能够获取匹配元素集上的相应位置索引的元素. 匹配元素集上元素的位置索引是从0开始的. 语法结构: 复制代码 代 ...
- php中return的用法实例分析
本文实例讲述了php中return的用法.分享给大家供大家参考.具体分析如下: 首先,它的意思就是返回;return()是语言结构而不是函数,仅在参数包含表达式时才需要用括号将其括起来.当返回一个变量 ...
- Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以'/'开头时默认是从此类所在 ...
随机推荐
- SQL的主键和外键约束
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...
- Source Insight 使用
1.括号配对高亮:“在前括号左侧,后括号左侧” 双击鼠标左键,可以选定匹配括号和其中内容(<>,(),L{R},[]之间) 2.让{ 和 } 不缩进:Options -> Docum ...
- [转]HTTP请求模型和头信息
原文链接:http://www.java3z.com/cwbwebhome/article/article2/2406.html 目录 一.连接至Web服务器 二.发送HTTP请求 三.服务端接受请求 ...
- jquerymobile标签-属性手册
Button data-role="button" data-corners true | false data-icon home | delete | plus | arr ...
- 安装Window Services 提示错误 [SC] OpenSCManager FAILED 5
通过CMD注册Windows服务 之前一直这样写一直也是注册成功,今天却遇到了问题SC Manager 失败 sc create RenService binPath= C:\Tools\Stat ...
- SCRIPT1010: 缺少标识符 常见原因
SCRIPT1010: 缺少标识符 ,一般是在IE下会出现这个问题. 今天在调试一段js代码时,在chrome,ff下均正常,但是在IE下就是一直这样的提示,出现这个问题的原因主要有以下几点: 1.出 ...
- 萝卜叶万能助手SEO网络营销简介
萝卜叶万能助手专业版是就是将我们10年的SEO经验和方法汇聚于一体的结晶,旨在打造一款使用简单方便,功能强大的SEO软件,以便节省您的时间,提高您收集资料.维护网站.发布帖子.进行网络营销的效率. 借 ...
- Populating Next Right Pointers in Each Node II--leetcode难题讲解系列
Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...
- listview 设置数组为空
listview.setEmpty(View view); 使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,今日对这个方法进行一下小结, ...
- php 5.4 5.5 如何连接 ms sqlserver
https://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx