当前位置:首页 > 科技  > 软件

C# 中的 this 关键字及其三种用法

来源: 责编: 时间:2024-05-29 17:26:43 85观看
导读在C#编程语言中,this关键字是一个特殊的引用,它指向当前类的实例。this关键字在类的方法内部使用,主要用于引用当前实例的成员。以下是this关键字的三种常见用法,并通过示例代码进行解释。1. 引用当前实例的成员当类的方

在C#编程语言中,this关键字是一个特殊的引用,它指向当前类的实例。this关键字在类的方法内部使用,主要用于引用当前实例的成员。以下是this关键字的三种常见用法,并通过示例代码进行解释。TBH28资讯网——每日最新资讯28at.com

TBH28资讯网——每日最新资讯28at.com

1. 引用当前实例的成员

当类的方法或属性中的参数或局部变量与类的成员名称冲突时,可以使用this关键字来明确指定我们正在引用的是当前实例的成员,而不是局部变量或参数。TBH28资讯网——每日最新资讯28at.com

示例代码:TBH28资讯网——每日最新资讯28at.com

public class Person{    private string name;    public Person(string name)    {        // 使用 this 关键字来区分成员变量和构造函数的参数        this.name = name;    }    public void SetName(string name)    {        // 同样使用 this 关键字来引用成员变量        this.name = name;    }    public string GetName()    {        return this.name;    }}

在这个例子中,this.name指的是类的私有成员变量name,而不是方法或构造函数的参数name。TBH28资讯网——每日最新资讯28at.com

2. 作为方法的返回值

this关键字还可以用作方法的返回值,通常用于实现链式调用(也称为流畅接口)。当方法返回this时,它实际上返回的是当前对象的引用,允许我们在同一对象上连续调用多个方法。TBH28资讯网——每日最新资讯28at.com

示例代码:TBH28资讯网——每日最新资讯28at.com

public class Builder{    private string material;    private int size;    public Builder SetMaterial(string material)    {        this.material = material;        // 返回当前实例的引用,以便进行链式调用        return this;    }    public Builder SetSize(int size)    {        this.size = size;        // 返回当前实例的引用,以便进行链式调用        return this;    }    public void Build()    {        Console.WriteLine($"Building with {material} of size {size}");    }}// 使用示例:Builder builder = new Builder();builder.SetMaterial("Wood").SetSize(10).Build(); // 链式调用

在这个例子中,SetMaterial和SetSize方法都返回this,这使得我们可以将方法调用链接在一起。TBH28资讯网——每日最新资讯28at.com

3. 在索引器中使用

this关键字还可以用于定义索引器,索引器允许一个类或结构的对象像数组一样进行索引。在这种情况下,this关键字用于指定索引器的访问方式。TBH28资讯网——每日最新资讯28at.com

示例代码:TBH28资讯网——每日最新资讯28at.com

public class CustomArray{    private int[] array = new int[10];    // 索引器定义,使用 this 关键字    public int this[int index]    {        get { return array[index]; }        set { array[index] = value; }    }}// 使用示例:CustomArray customArray = new CustomArray();customArray[0] = 100; // 设置第一个元素的值Console.WriteLine(customArray[0]); // 获取并打印第一个元素的值

在这个例子中,我们定义了一个名为CustomArray的类,它使用this关键字创建了一个索引器,允许我们像访问数组元素一样访问CustomArray对象的成员。TBH28资讯网——每日最新资讯28at.com

总结

this关键字在C#中扮演着重要角色,它提供了对当前实例的引用,使得在方法内部能够清晰地访问和修改实例的成员。通过了解this关键字的这三种常见用法,开发者可以更加灵活地编写面向对象的代码,并实现更优雅的编程风格。TBH28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-91513-0.htmlC# 中的 this 关键字及其三种用法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 面试官:消息队列的应用场景有哪些?

下一篇: C++11:引入 nullptr 的背后故事

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 摸鱼心法第一章——和配置文件说拜拜

    摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • Automa-通过连接块来自动化你的浏览器

    Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 如何使用JavaScript创建一只图像放大镜?

    如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 每天一道面试题-CPU伪共享

    每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • Temu起诉SHEIN,跨境电商战事升级

    Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
Top