【发布时间】:2019-05-21 05:59:36
【问题描述】:
我看不懂这段 C# 代码:
public virtual object this[string fullname]
{
get
{
return null;
}
set
{
}
}
特别是 this[string name] 部分。打算使用此代码做什么的人?后面是这样实现的:
public override object this[string fullname]
{
get
{
fullname= fullname.Trim('\"');
//some code ....
return x;
}
set
{
fullname= fullname.Trim('\"');
//some code ...
string[] a= fullname.Split(":".ToCharArray());
//some more code...
}
}
每当具有此代码的类使用 this 关键字时,该人是否会重新定义它?这是怎么回事?如果有,为什么?
【问题讨论】:
-
这定义了一个“索引器”——也就是说,其他代码可以做
someObj["whatever"] = blah;——索引器有单独的getter和setter -
public= publicvirtual= 可以被覆盖object= 可以返回任何类型this[string fullname]= 索引器。预计您可以将其称为object o = myClass["x"]; -
这篇文章可以帮到你:stackoverflow.com/questions/424669/…
-
谢谢大家,除了在集合上使用之外,对索引器不太熟悉。不知道这是在类中使用它的语法。
标签: c#