• C#中this保留字的用法


    一、this保留字

    this保留字一般只在构造函数、类的方法和类的实例中使用。它有以下含义:

    ?在类的构造函数中出现的this,则作为一个值类型,表示对正在构造的对象本身的引用。

    ?在类的方法中出现的this,则作为一个值类型,表示对调用该方法的对象的引用。

    ?在结构的构造函数中出现的this,则作为一个变量类型,表示对正在构造的结构的引用。

    ?在结构的方法中出现的this,则作为一个变量类型,表示对调用该方法的结构的引用。
    除此之外,在其它地方使用this保留字都是不合法的。

    二、提示

    假如类中有一个成员变量a,同时在该类的成员函数中又定义了一个局部变量a,此时就必须使用this关键字来指定类的成员变量a了,具体写法就是:

    this.a  // 指定类的成员变量a,而不是成员函数中的局部变量a请阅读三、示例。

    注:在类中,所谓的成员函数,实际上就是类的方法。

    this表示当前类。

    比如在一个类A中有一个b方法。如果要在类A中调用这个b方法,就可以使用:

    this.b如果要在别的类中调用这个方法,就必须先实例化一个对象,然后再调用:

    A a = new a();
    a.b

    在静态的方法中不能使用this,比如main方法就是一个静态的方法,因此,不能在main方法中使用this。

    三、示例
      
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    class classTest                 // 自定义类classTest
    {
        private int age = 20;       // 私有成员
        public int ShowAge1(int age)// 参数和私有成员重名。
        {
            return this.age;        // 返回的是私有成员age的数值
        }
        public int ShowAge2(int age)
        {
            return age;             // 返回的是参数的数值
        }
        // 如果参数和私有成员不重名,在方法中访问成员时不需要添加this,
        // 但好的习惯是加上this。
        public int ShowAge3(int newage)
        {
            return age;
        }
        public int ShowAge4(int newage)
        {
            return this.age;
        }
    }

    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                // C#中this保留字的用法-www.baike369.com
                classTest classTest1 = new classTest();
                Console.WriteLine(classTest1.ShowAge1(100));
                Console.WriteLine(classTest1.ShowAge2(100));
                Console.WriteLine(classTest1.ShowAge3(100));
                Console.WriteLine(classTest1.ShowAge4(100));
                Console.ReadLine();
            }
        }
    }

    运行结果:
     
    20
    100
    20
    20

  • 相关阅读:
    WebGPU学习(九):学习“fractalCube”示例
    WebGPU学习(八):学习“texturedCube”示例
    WebGPU学习(七):学习“twoCubes”和“instancedCube”示例
    WebGPU学习(六):学习“rotatingCube”示例
    WebGPU学习(五): 现代图形API技术要点和WebGPU支持情况调研
    WebGPU学习(四):Alpha To Coverage
    WebGPU学习(三):MSAA
    WebGPU学习(二): 学习“绘制一个三角形”示例
    WebGPU学习(一): 开篇
    无论你正从事的是什么行业,读书,都应当是一辈子的事
  • 原文地址:https://www.cnblogs.com/melao2006/p/4239321.html
Copyright © 2020-2023  润新知