zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/melao2006/p/4239321.html
Copyright © 2011-2022 走看看