何时使用“;这个“;变量赋值中
本文关键字:赋值 变量 这个 何时使 | 更新日期: 2023-09-27 18:24:53
如果我使用"this",它会使MainInst
成为传递的实例;如果我不打这个。它还会使变量等价于同一个实例吗。。?这有什么意义,什么时候用在这种类型的作业中。
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInstance){
this.MainInst = MainInstance;
}
}
与
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInstance){
MainInst = MainInstance;
}
}
在这种情况下,这并不重要,因为它是明确的。
但如果你有:
class Phonebook
{
private MainWindow MainInst;
public Phonebook(MainWindow MainInst){
MainInst = MainInst;
}
}
那么代码就不再正确了。它会将参数分配给自己。你必须使用this
来纠正它。
我的建议是:对班级、本地人和私人成员使用不同的命名约定。一个例子是:
class Phonebook
{
private MainWindow _mainInst;
public Phonebook(MainWindow mainInst){
_mainInst = mainInst;
}
}
现在,您可以第一眼看到,在不使用this
的情况下,将一个局部变量(因为它以小写字母开头)分配给一个私有成员(由于它以下划线开头)。
请注意,根据阿列克谢的评论,这只是许多可能的惯例之一。Microsoft建议公共类/成员使用这些准则。C#代码中被广泛接受的约定是:
- 类、属性和事件应以大写字母开头
- 接口应以
I
开头,后跟一个大写字母 - 区域设置应以小写字母开头
这些都不应该包含下划线(除了单元测试方法)。
至于私人会员,有很多惯例,所以选择你自己的。
- 有些人更喜欢像局部变量一样命名私有成员,并显式使用
this
- 有些人在前面加了一个下划线,就像我前面的例子一样
- 有些使用前缀,如
my
或m_
(匈牙利表示法)
即使是微软也对其私人成员使用匈牙利语表示法,但并不一致。你应该选择一个惯例并坚持下去。
当在同一范围内有多个同名变量时,会使用"this"关键字。例如,如果您的构造函数具有签名public Phonebook(MainWindow MainInst)
,那么您必须说this.MainInst = MainInst
以避免歧义。