它有助于注意到我很新的C#。
但是,考虑以下类:
class AllItems
{
private readonly Database database;
public AllItems(Database database)
{
this.database = database;
}
}
我有以下问题:
private readonly Database database
类AllItems
the值,是正确的?this.database = database
左右,所以它看起来像database = this.database
呢?this.database
,确实this
参考数据库AllItems(Database database)
或者它是指private readonly Database database
?在上面的例子中,我们分配私有只读数据库的数据库,被传递到AllItems类的价值,是正确的?
是
难道问题,如果我换
this.database = database
左右,所以它看起来像database = this.database
呢?
是的,它会。什么你最终会做有分配正在传递的数据库参数是数据库字段(这将被默认null
)的值。
当我们说
this.database
,这是否指的是数据库AllItems(数据库的数据库),或者它是指私人只读数据库的数据库?
this
是当前类实例的简写,因此它是指数据库的私有只读成员。
this.database
的值(在这种情况下null
)到database
。this.database
在这种情况下是指private readonly Database database;
领域。我建议你阅读更多关于this
关键字here。database = this.database
,该database
被分配到this.database
的值,它是空在这种情况下,但不使用局部变量,将成为构造函数外不可用。this.database
引用类的私有字段。在这种情况下,私人领域和参数具有相同的名称,所以我们必须使用this
以避免歧义。1)在上面的例子中,我们指定专用只读数据库的数据库,被传递到AllItems类的价值,是正确的?
是的,this
被用来指那些在类声明的对象。
2)难道问题,如果我换this.database =数据库各地,所以它看起来像数据库= this.database呢?
是的,它会的,如果你掉它,然后分配,而不是在数据库中的值的声明在构造函数中的参数private readonly Database database
,它会在`私人只读数据库数据库中的值赋给声明为构造函数的参数数据库。
3)当我们说this.database,这是否指的是在数据库中AllItems(数据库的数据库),或者它是指私人只读数据库的数据库?
this
是用来指在类中声明的变量也称为因此全局变量是指private readonly Database database
关键字。