簡體   English   中英

有{}運營商嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM