Ian*_*oyd 2 c# properties indexed-properties
我想在C#中有一个索引属性:
public Boolean IsSelected[Guid personGuid]
{
get {
Person person = GetPersonByGuid(personGuid);
return person.IsSelected;
}
set {
Person person = GetPersonByGuid(personGuid);
person.IsSelected = value;
}
}
public Boolean IsApproved[Guid personGuid]
{
get {
Person person = GetPersonByGuid(personGuid);
return person.IsApproved;
}
set {
Person person = GetPersonByGuid(personGuid);
person.IsApproved= value;
}
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio抱怨非整数索引器语法:
我知道.NET支持非整数索引器.
在另一种语言中,我会写:
private
function GetIsSelected(ApproverGUID: TGUID): Boolean;
procedure SetIsSelected(ApproverGUID: TGUID; Value: Boolean);
function GetIsApproved(ApproverGUID: TGUID): Boolean;
procedure SetIsApproved(ApproverGUID: TGUID; Value: Boolean);
public
property IsSelected[ApproverGuid: TGUID]:Boolean read GetIsSelected write SetIsSelected;
property IsApproved[ApproverGuid: TGUID]:Boolean read GetIsApproved write SetIsApproved;
end;
Run Code Online (Sandbox Code Playgroud)
你的语法不正确:
public Boolean this[Guid personGuid]
{
get {
Person person = GetPersonByGuid(personGuid);
return person.IsSelected;
}
set {
Person person = GetPersonByGuid(personGuid);
person.IsSelected = value;
}
}
Run Code Online (Sandbox Code Playgroud)
使用this关键字声明索引器- 您不能使用自己的名称.
要在类或结构上声明索引器,请使用this关键字
另外,只有一个索引器可以接受一个类型 - 这是C#索引器语法的限制(可能是IL限制,不确定).
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |