C# '的含义;这';对于struct和class

C# '的含义;这';对于struct和class,c#,C#,在msdn文章中: 在类的实例构造函数或实例函数成员中, 这被归类为一个值。因此,虽然这可以用来指 对于调用函数成员的实例,它不是 可以在类的函数成员中对此进行赋值。在一年之内 结构的实例构造函数,这对应于out参数 结构类型的,并且在 struct,这对应于struct类型的ref参数。在里面 在这两种情况下,这都被归类为一个变量,可以 修改调用函数成员的整个结构 分配给该参数,或将其作为ref或out参数传递 你能给我一个结构和类的例子来说明这一点吗。在类中,this关键字指的是类的当前实例

在msdn文章中:

在类的实例构造函数或实例函数成员中, 这被归类为一个值。因此,虽然这可以用来指 对于调用函数成员的实例,它不是 可以在类的函数成员中对此进行赋值。在一年之内 结构的实例构造函数,这对应于out参数 结构类型的,并且在 struct,这对应于struct类型的ref参数。在里面 在这两种情况下,这都被归类为一个变量,可以 修改调用函数成员的整个结构 分配给该参数,或将其作为ref或out参数传递


你能给我一个结构和类的例子来说明这一点吗。

在类中,this关键字指的是类的当前实例,或者是调用特定方法的实例。 您还可以在结构中使用
this
关键字,它将引用结构的当前实例

在结构中的用法:

class student
{  
    int id;  
    String name;  

    student(int id,String name)
    {  
        id = id;  
        name = name;  
    }  
    void display()
    {
        Console.WriteLine(id+" "+name);
    }  
    public static void main()
    {  
        student s1 = new student(1,"NameA");  
        student s2 = new student(2,"NameB");  
        s1.display();  
        s2.display();  
    }  
}  
在下面的示例中,
this
关键字用于引用结构的当前实例的字段,以将它们与具有相同名称的输入参数区分开来

public struct BoxSize
{
    public double x;
    public double y;
    public double z;

    public bool HasBiggerVolume(double x, double y, double z)
    {
        if ((this.x * this.y * this.z) > (x * y * z))
            return true;
        else
            return false;
    }
}
在课堂上的用法:

class student
{  
    int id;  
    String name;  

    student(int id,String name)
    {  
        id = id;  
        name = name;  
    }  
    void display()
    {
        Console.WriteLine(id+" "+name);
    }  
    public static void main()
    {  
        student s1 = new student(1,"NameA");  
        student s2 = new student(2,"NameB");  
        s1.display();  
        s2.display();  
    }  
}  
输出将是:

0 null
0 null
1 NameA
2 NameB
问题的解决方案:

class Student
{  
    int id;  
    String name;  
    student(int id,String name)
    {  
        this.id = id;  
        this.name = name;  
    }  
    void display()
    {
        Console.WriteLine(id+" "+name);
    }  
    public static void main()
    {  
        Student s1 = new Student(1,"NameA");  
        Student s2 = new Student(2,"NameB");  
        s1.display();  
        s2.display();  
    }  
}  
输出将是:

0 null
0 null
1 NameA
2 NameB
仅供参考,这里给出了
this
关键字的6种用法

  • 关键字可用于引用当前类实例变量

  • this()
    可用于调用当前类构造函数

  • 关键字可用于调用当前类方法(隐式)

  • 可以在方法调用中作为参数传递

  • 可以在构造函数调用中作为参数传递

  • 关键字也可用于返回当前类实例


  • 在类中,
    this
    关键字引用类的当前实例,或调用特定方法的实例。 您还可以在结构中使用
    this
    关键字,它将引用结构的当前实例

    在结构中的用法:

    class student
    {  
        int id;  
        String name;  
    
        student(int id,String name)
        {  
            id = id;  
            name = name;  
        }  
        void display()
        {
            Console.WriteLine(id+" "+name);
        }  
        public static void main()
        {  
            student s1 = new student(1,"NameA");  
            student s2 = new student(2,"NameB");  
            s1.display();  
            s2.display();  
        }  
    }  
    
    在下面的示例中,
    this
    关键字用于引用结构的当前实例的字段,以将它们与具有相同名称的输入参数区分开来

    public struct BoxSize
    {
        public double x;
        public double y;
        public double z;
    
        public bool HasBiggerVolume(double x, double y, double z)
        {
            if ((this.x * this.y * this.z) > (x * y * z))
                return true;
            else
                return false;
        }
    }
    
    在课堂上的用法:

    class student
    {  
        int id;  
        String name;  
    
        student(int id,String name)
        {  
            id = id;  
            name = name;  
        }  
        void display()
        {
            Console.WriteLine(id+" "+name);
        }  
        public static void main()
        {  
            student s1 = new student(1,"NameA");  
            student s2 = new student(2,"NameB");  
            s1.display();  
            s2.display();  
        }  
    }  
    
    输出将是:

    0 null
    0 null
    
    1 NameA
    2 NameB
    
    问题的解决方案:

    class Student
    {  
        int id;  
        String name;  
        student(int id,String name)
        {  
            this.id = id;  
            this.name = name;  
        }  
        void display()
        {
            Console.WriteLine(id+" "+name);
        }  
        public static void main()
        {  
            Student s1 = new Student(1,"NameA");  
            Student s2 = new Student(2,"NameB");  
            s1.display();  
            s2.display();  
        }  
    }  
    
    输出将是:

    0 null
    0 null
    
    1 NameA
    2 NameB
    
    仅供参考,这里给出了
    this
    关键字的6种用法

  • 关键字可用于引用当前类实例变量

  • this()
    可用于调用当前类构造函数

  • 关键字可用于调用当前类方法(隐式)

  • 可以在方法调用中作为参数传递

  • 可以在构造函数调用中作为参数传递

  • 关键字也可用于返回当前类实例


  • 谷歌上没有一个“面向对象编程教程”的结果给了你喜欢的答案?谷歌上没有一个“面向对象编程教程”的结果给了你喜欢的答案?这不是和我们对一个类也这样做的吗?这看起来像java-问题被标记为c#!;)@鲍德里克:谢谢你,伙计!编辑了答案。@NachiketKamat:编辑了我的答案。包含在类和结构中。@变量:我的答案得到你想要的了吗?这和我们对类的回答不一样吗?看起来像java-问题被标记为c#!)@鲍德里克:谢谢你,伙计!编辑了答案。@NachiketKamat:编辑了我的答案。包含在类和结构中。@variable:我的答案是否符合您的要求?