了解類型的安全性和c#
中的列表脅迫c#的類型系統可防止直接鑄造List<string>
List<object>
。這種設計選擇是該語言對類型安全性和魯棒編程的重視至關重要的。 讓我們探討為什麼存在這種限制。
核心問題源於基本類型的差異。 允許這樣的演員會損害類型的安全性。 想像一下,如果您可以將AList<string>
分配給aList<object>
>變量:然後,您可以將任何類型的對象添加到列表中,繞過原始字符串約束。 嘗試以後訪問這些添加的對象,因為字符串不可避免地會導致運行時錯誤(例如InvalidCastException
)。
>在最初a
<code class="language-csharp">List<string> stringList = new List<string>(); List<object> objectList; objectList = (List<object>)stringList; // This is NOT allowed in C# objectList.Add(new Foo()); // Adding a non-string object // ... (Later attempts to access elements as strings would fail)</code>
中添加Foo
對象(或任何非弦樂對象)打破了列表的預期類型一致性。 List<string>
>
以上是為什麼不能將列表投入C#中的列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!