• c# this用法


    C#所有的对象都将创建在托管堆上。实例化后的类型我们称之为对象,其核心特征便是拥有了一份自己特有的数据成员拷贝。这些为特有的对象所持有的数据成员我们称之为实

    例成员。相反那些不为特有的对象所持有的数据成员我们称之为静态成员,在类中用static修饰符声明。仅对静态数据成员实施操作的称为静态函数成员。C#中静态数据成员和

    函数成员只能通过类名引用获取,看下面的代码:

    public class Programe{
    void fun1(){
    Console.WriteLine("This is fun1");
    }
    void fun2(){
    fun1();
    }
    public static void Main(){
    Programe p=new Programe();
    p.fun1();
    }
    }


    注意静态方法不能使用this关键字
    上面的代码中,因为主函数是静态函数,我们只能通过实例化对象才能访问。
    而在实例方法fun2中我们可以直接用this调用fun1,并且可以省略this。

    实例方法比静态方法多传递一个隐含的指针参数(即使是无参函数),只要是成员方法,编译器就会给你加上this这个参数,例如
    void method1(){}实际上是这样的--------> void method1(A this)
    void method2(int x){}实际上是这样的--------> void method2(A this, int x)

    this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在.
    静态方法不可使用this因为静态方法不针对任何实例对象。实例对象调用静态方法会因参数中多出一个指向自己的指针(this)而发生错误。
    而静态方法与对象无关,根本不能把对象的引用传到方法中,所以不能用this

    1.在构造函数中this用于限定被相同的名称隐藏的成员,例如:

    public class Student
    {
    public Student(string name, string age)
    {
    this.name = name;
    this.age = age;
    }
    }


    2.将对象作为参数传递到其他方法时也要用this表达,例如:

    fun(this)


    3.声明索引器时this更是不可或缺,例如:

    public int this [int param]
    {
    get
    {
    return array[param];
    }
    set
    {
    array[param]=value;
    }
    }

    ————————————————
    版权声明:本文为CSDN博主「lin37985」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lin37985/article/details/46574769

  • 相关阅读:
    flowableU应用
    公募REITs打新基本
    A股市场人气排名因子
    flowableUI 流程演示
    flowable之监听器分配
    flowable基础二,
    【python股票量化】人气指标AR策略编程实现
    Java使用hutool工具类发送http请求
    一个模拟消息订阅和发布的简单程序
    CAXA基本操作旋转
  • 原文地址:https://www.cnblogs.com/cheari/p/15294231.html
Copyright © 2020-2023  润新知