2

我正在制作一个窗口表单应用程序。当我查看文件时,Form1.Designer.cs然后在我看到的自动生成的代码中

        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(284, 262);
        this.Controls.Add(this.button2);
        this.Controls.Add(this.button1);
        this.Name = "Form1";
        this.Text = "Form1";
        this.ResumeLayout(false);

说明了什么以及可以在 c# 中以多少种方式使用它

4

5 回答 5

6

它指的是类的当前实例。如果您使用 ReSharper 之类的工具,有时可能会被认为是多余的。

public class Test
{
        private string testVariable;

        public Test(string testVariable) 
        {
            this.testVariable = testVariable;
        }
}

在这种情况下this.testVariable,指的是类中的私有字符串,而不是testVariable通过构造函数传入的字符串。

http://msdn.microsoft.com/en-gb/library/dk1507sz(v=vs.71).aspx

于 2013-02-24T14:50:29.153 回答
4

this关键字指的是一个类的当前实例——所以在这种情况下是正在加载的 Form1 的实例 。

至于为什么要使用它,它可以帮助区分变量 - 例如

 private string bar;

 private void Foo(string bar)
 {
   this.bar = bar;
 }

(尽管对于上面的代码,许多人会认为私人酒吧应该是 _bar)

有关此的更多信息

于 2013-02-24T14:52:27.203 回答
3

this关键字指的是当前实例并且class也用作扩展方法的第一个参数的修饰符。

public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}
于 2013-02-24T14:52:18.583 回答
3

this 关键字引用类的当前实例,也用作扩展方法的第一个参数的修饰符。

  • this关键字是指类的当前实例。它可用于从构造函数、实例方法和实例访问器中访问成员。
  • this消除命名冲突。
  • this不能引用静态字段或方法。它不能发生在静态类中。
  • 关键字由this编译器推断。
于 2013-02-24T14:53:15.043 回答
2
  class program
{
   public int x = 10;
    public void fun1()
    {

        Console.WriteLine("as you wish");
    }
}
class program2:program
{
    public void fun2()
    {
        Console.WriteLine("no");

        this.fun2(); //base class function call

        this.fun1(); // same class function call

    }
}
class program3:program2
{
   public int x = 20;
    public void fun3()
    {

        Console.WriteLine(this.x); //same class x variable call
        Console.WriteLine(base.x); // base class x variable call
       // this.fun3(); // same class function call
        Console.WriteLine("Program3 class call");
        base.fun1(); //base class function call
    }

    static void Main(string[] args)
    {
        program3 pr = new program3();
        pr.fun3();
    }

this 关键字调用当前引用。如果要调用同一类的当前对象,则使用此关键字。我们如何需要 this 关键字???1.消除基类和当前类对象。

于 2013-02-24T16:13:16.793 回答