何时使用“;这个“;变量赋值中

本文关键字:赋值 变量 这个 何时使 | 更新日期: 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
  • 有些人在前面加了一个下划线,就像我前面的例子一样
  • 有些使用前缀,如mym_(匈牙利表示法)

即使是微软也对其私人成员使用匈牙利语表示法,但并不一致。你应该选择一个惯例并坚持下去。

当在同一范围内有多个同名变量时,会使用"this"关键字。例如,如果您的构造函数具有签名public Phonebook(MainWindow MainInst),那么您必须说this.MainInst = MainInst以避免歧义。