Wil*_*sch 10 c# dll visual-studio windows-phone-7 assembly-references
我试图在我的Windows 7 Phone应用程序中使用其他人的C#类.这些类使用Hashtable类型的对象.
有问题的文件有
using System.Collections;
Run Code Online (Sandbox Code Playgroud)
在顶部,所以我假设它是它想要的Hashtable对象.
当我尝试构建我的解决方案时,我得到的错误是无法找到类型或命名空间名称'Hashtable',您是否缺少using指令或程序集引用.
在微软的Hashtable文档中,我看到它表示Assembly:mscorlib
但是如果我尝试通过Project> Add Reference添加mscorlib,VS说它无法添加它,因为它会被构建系统自动引用.
我错过了什么?
SLa*_*aks 27
非泛型集合(包括ArrayList
和HashTable
)不包含在Silverlight中.
这些类是.Net 1.0(没有泛型)的保留,不应该在新代码中使用.
相反,你应该使用泛型集合 - List<T>
和Dictionary<TKey, TValue>
.
Gab*_*abe 10
你有几个选择:
您的进口改为using System.Collections.Generic;
和每次使用的改变HashTable
来Dictionary<>
和ArrayList
到List<>
.
你或许可以逃脱:
using HashTable = System.Collections.Generic.Dictionary<object, object>;
using ArrayList = System.Collections.Generic.List<object>;
请注意,任何未来的维护者都会讨厌这样做.
但最好重构代码以正确使用泛型集合.
Hashtable
在命名空间中创建一个类System.Collections
,IDictionary<object, object>
通过将所有内容转发到内部Dictionary<object, object>
并实现必要的行为更改(锁定,缺少键等)来实现; 创建一个ArrayList
封装List<object>
.(由henon建议)
归档时间: |
|
查看次数: |
17671 次 |
最近记录: |