C# 在这种情况下,赋值运算符是如何工作的?
请注意,我对c#很陌生C# 在这种情况下,赋值运算符是如何工作的?,c#,oop,C#,Oop,请注意,我对c#很陌生 但请考虑以下类: class AllItems { private readonly Database database; public AllItems(Database database) { this.database = database; } } 我有以下问题: 在上面的示例中,我们分配了私有只读数据库传递到AllItems类中的值,对吗 如果我交换了this.database=database,使它看起来像d
但请考虑以下类:
class AllItems
{
private readonly Database database;
public AllItems(Database database)
{
this.database = database;
}
}
我有以下问题:
私有只读数据库
传递到AllItems
类中的值,对吗this.database=database
,使它看起来像database=this.database
,这有关系吗this.database
时,this
是指AllItems(database database)
中的数据库还是指私有只读数据库
this.database
(在本例中为null
)的值分配到database
李>
this.database
在本例中指的是私有只读数据库代码>字段。我建议您阅读更多关于这个
关键字的信息
this.database=database
,使它看起来像database=this.database
,这有关系吗
是的,会的。您最终要做的是将传入的数据库参数指定为数据库字段的值(默认情况下为null
)
当我们说this.database时,它是指AllItems(数据库数据库)中的数据库还是指私有只读数据库
是当前类实例的缩写,因此它指的是数据库的私有只读成员
database=this.database
,database
被分配给this.database
的值,该值在本例中为空,但不使用该局部变量,并且在构造函数外部将变得不可用this.database
当然引用了类的私有字段。在这种情况下,私有字段和参数具有相同的名称,因此我们必须使用this
,以避免歧义此
用于引用类中声明的对象
2) 如果我交换了this.database=database,使它看起来像database=this.database,这有关系吗
是的,如果您交换它,那么它将不会将构造函数中声明为参数的数据库中的值分配给私有只读数据库
,而是将`private readonly database database中的值分配给构造函数中声明为参数的数据库
3) 这里我们说的是this.database,它是指AllItems(数据库数据库)中的数据库还是指私有只读数据库
此
是一个关键字,用于引用类中声明的变量,也称为全局变量,因此它引用的是专用只读数据库
再看一看是的,我的意思是它指的是该字段,而不是在构造函数中传递的参数。我已经改正了我的答案