[英]Is there a {} Operator?
您可以使用
List<string> sList = new List<string>() { "1", "2" };
創建一個新列表並添加2個項目。 { "1", "2" }
-part僅起作用,因為List<T>
已實現Add()
方法。
我的問題:是{}
類似於操作符,可以重載,例如兩次添加項目
是{}類似於操作符,可以重載,例如兩次添加項目
任何提供Add
方法,內置或作為擴展方法的集合類型( 從C#-6開始 )都可以使用{ }
語法提供的集合初始值設定項。 如果您的Add
方法將相同的項目兩次添加到該集合,那么它就是這樣做的。
如果您希望更改{ }
的行為,則必須覆蓋或重載集合上的Add
方法。
一些額外的規范優點(取自這個答案 ):
C#語言規范 - 7.5.10.3集合初始化器
應用集合初始值設定項的集合對象必須是實現System.Collections.IEnumerable的類型,否則會發生編譯時錯誤。 對於按順序的每個指定元素,集合初始值設定項在目標對象上調用Add方法,並將元素初始值設定項的表達式列表作為參數列表,為每次調用應用正常的重載決策。 因此,集合對象必須包含每個元素初始值設定項的適用Add方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.