在我使用 Visual Studio 11 Express Beta 编写的 Windows 8 应用程序中,我无法使用 ArrayList。这是我的代码:
using System.Collections;
ArrayList al = new ArrayList();
编译器错误:
找不到类型或命名空间名称“ArrayList”(您是否缺少 using 指令或程序集引用?)
这是新事物吗?我喜欢 ArrayLists :)
在我使用 Visual Studio 11 Express Beta 编写的 Windows 8 应用程序中,我无法使用 ArrayList。这是我的代码:
using System.Collections;
ArrayList al = new ArrayList();
编译器错误:
找不到类型或命名空间名称“ArrayList”(您是否缺少 using 指令或程序集引用?)
这是新事物吗?我喜欢 ArrayLists :)
对于 WinRT,他们去掉了所有的非泛型集合——它更快并且让你的代码更可靠。请改用 List<T>。
ps...这不会是你最后一次说“他们为什么要拿走那个 API?” 在迁移到 WinRT 时
编辑
考虑到ArrayList的文档,它直到 4.0 版本才可用。检查 .NET Framework 的项目版本。考虑到您正在为 Metro 写作,它必须是 4.5(至少)。
更多细节可以在这篇文章中看到:
如何在 Metro 风格类库项目中使用 ArrayList 类?
Metro Style 应用程序的 System.Collections 命名空间缺少类型ArrayList
。
ArrayList 在 Metro 风格应用程序的 .NET 4.5 中不可用。使用 List 的通用版本,如果您需要对象列表,请使用List<object>
.
有关 Metro 风格应用程序 API 参考的 .NET,请查看此处:http: //msdn.microsoft.com/en-us/library/windows/apps/hh454064%28v=vs.110%29.aspx
您不能ArrayList
在 WinRT 应用程序中使用 ,您必须使用List
.
这取决于您使用的 .NET Framework 版本。.Net 4.5.1 不支持 ArrayList。您应该使用 List 的通用形式,List<T>
而不是ArrayList
作为集合类型。
看看这里:
List<Object> 是 ArrayList 的一个很好的替代品吗?
您可以在这里了解更多信息: