[英]What is “default indexed property” in CLR/C#?
我正在閱讀《框架設計指南》這本書,但對其中一個規則(第142頁)“請勿使用非默認索引屬性”感到困惑。
出於多種原因,我感到困惑-索引屬性不應表示索引器,但是如果它是關於一個屬性的,則默認屬性(自動一個)是什么,如果這是一個錯字(“ indexe R property”),並且它是關於索引器,我發現了一些提示,也許只有一個int
參數的索引器被稱為默認索引器(是嗎?),但是在這種情況下,C#不會禁止其他索引器。
我無法破譯。
在某些語言(例如Delphi )中,您可以定義命名的索引屬性(例如)
type
TMyCollection = class(TObject)
private
...
protected
function GetItem(idx: LongInt): LongWord; virtual;
public
// Named ("Items") indexed (note "idx") property
property Items[idx: LongInt]: LongWord read GetItem;
end;
CLR 支持此構造
https://msdn.microsoft.com/en-us/library/vstudio/ms229061(v=vs.100).aspx
但是,不建議使用這種構造,並且某些語言(例如C# ) 強制執行此准則。 我們在C#中所允許的全部是無名 ( 默認 )索引屬性-indexer。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.