如果我使用"这个"它使MainInst
传递的实例;如果我不打字。它不会使变量等效于同一个实例..?这是什么意思,什么时候用于这种类型的任务。
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInstance){
this.MainInst = MainInstance;
}
}
VS
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInstance){
MainInst = MainInstance;
}
}
答案 0 :(得分:3)
在这种情况下,它无关紧要,因为它是毫不含糊的。
但如果你有:
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInst){
MainInst = MainInst;
}
}
然后代码就不再正确了。它会将参数分配给自己。您必须使用this
来更正它。
我的建议:对类,本地人和私人成员使用不同的命名约定。一个例子是:
class Phonebook
{
private MainWindow _mainInst;
public Phonebook(MainWindow mainInst){
_mainInst = mainInst;
}
}
现在,您可以乍看之下将一个局部变量(因为它以小写字母开头)分配给私有成员(因为它以下划线开头),而不使用this
。< / p>
请注意,根据Alexei的评论,这只是许多可能的约定之一。 Microsoft建议{em>公共类/成员these guidelines。 C#代码中广泛接受的约定是:
I
开头,后跟大写字母这些都不应包含下划线(单元测试方法除外)。
至于私人会员,有很多约定,所以选择你自己的。
this
my
或m_
(匈牙利表示法)...... 即使是Microsoft uses Hungarian notation也适用于他们的私人会员,但not consistently。你应该选择一个约定并坚持下去。
答案 1 :(得分:2)
如果在同一范围内有多个同名变量,则使用“this”关键字。例如,如果您的构造函数具有签名public Phonebook(MainWindow MainInst)
,那么您必须说this.MainInst = MainInst
以避免歧义。