我正在制作一个窗口表单应用程序。当我查看文件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#中可以使用多少种方式
答案 0 :(得分: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
答案 1 :(得分:4)
此 关键字引用类的当前实例 - 因此在这种情况下是正在加载的Form1的实例。
至于为何使用它,它可以帮助区分变量 - 例如
private string bar;
private void Foo(string bar)
{
this.bar = bar;
}
(虽然对于上面的代码,很多人会认为私人栏应该是_bar)
有关this
的更多信息答案 2 :(得分:3)
this
关键字引用class
的当前实例,并且还用作扩展方法的第一个参数的修饰符。
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}
答案 3 :(得分:3)
this关键字引用类的当前实例,并且是 也用作扩展方法的第一个参数的修饰符。
this
关键字指的是该类的当前实例。它可用于从构造函数,实例方法和实例访问器中访问成员。this
消除了命名冲突。this
无法引用静态字段或方法。它不能发生在静态类中。 this
关键字由编译器推断。答案 4 :(得分: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();
}
此关键字调用当前引用。如果要调用同一类的当前对象,则使用此关键字。 我们如何需要这个关键字??? 1.消除基类和当前类对象。