C# 调用 Microsoft.VisualBasic.Collection
2007-07-17 23:54
337 查看
问题
Dim d As New Collection
d.Add("Northsnow")
d.Add("塞北的雪")
d.Add("http://blog.csdn.net")
Dim t As New ArrayList(d)
Dim sb As New System.Text.StringBuilder()
If t.Count > 0 Then
sb.Append("ArrayList中共有 成员 ")
sb.Append(t.Item(2).ToString)
sb.Append(" 个")
For Each aa As String In t
sb.AppendLine()
sb.Append(aa)
Next
End If
MsgBox(sb.ToString)
以上是使用ARRAYLIST存储一个集合,VB中可以使用collectin,将其传入arraylist,而在C#中如何定义这个东西,使他能够传入ARRAYLIST呢?给个例子,谢谢
http://community.csdn.net/Expert/TopicView3.asp?id=5655091
解决
1。
// 事实上你可以直接在 C# 中使用 Microsoft.VisualBasic.Collection
// 需要添加对 Microsoft.VisualBasic.dll 的引用
Microsoft.VisualBasic.Collection d = new Microsoft.VisualBasic.Collection();
d.Add("Northsnow", null, null, null); // C# 不支持可选参数, 若不指定 传入 null
d.Add("塞北的雪", null, null, null);
d.Add("http://blog.csdn.net", null, null, null);
ArrayList t = new ArrayList(d);
StringBuilder sb = new System.Text.StringBuilder();
2。
以上代码比较适合将进行 VB.net 向 C# 的直接移植,
因为
Visual Basic 集合与 System.Collections、System.Collections.Generic 和 System.Collections.Specialized 命名空间中的 .NET Framework 集合不兼容
具体没有实践过,不知道是否会导致后期维护的困难。
3。
若新项目,最佳实践实现是,使用 System.Collection.ArrayList
ArrayList list1 = new ArrayList();
list1.Add("a");
list1.Add("b");
ArrayList list2 = new ArrayList(list1);
补充
// 对于 .net 2.0 最佳还是选择泛型版本的 List
// using System.Collections.Generic;
IList<int> list2 = new List<int>(2);
list2.Add(119);
list2.Add(911);
//
Visual Basic Collection 类 http://msdn2.microsoft.com/zh-cn/library/microsoft.visualbasic.collection(VS.80).aspx
总结
1. .NET 果然跨语言^_^
2. 由于语言特性本身的差异,需要注意对特定语法支持,特别是开发类库的时候
3. 为保证语言的兼容性和互操作性,尽可能选择非特定语言支持的类库,而使用 System 命名空间及其子命名空间的类
Dim d As New Collection
d.Add("Northsnow")
d.Add("塞北的雪")
d.Add("http://blog.csdn.net")
Dim t As New ArrayList(d)
Dim sb As New System.Text.StringBuilder()
If t.Count > 0 Then
sb.Append("ArrayList中共有 成员 ")
sb.Append(t.Item(2).ToString)
sb.Append(" 个")
For Each aa As String In t
sb.AppendLine()
sb.Append(aa)
Next
End If
MsgBox(sb.ToString)
以上是使用ARRAYLIST存储一个集合,VB中可以使用collectin,将其传入arraylist,而在C#中如何定义这个东西,使他能够传入ARRAYLIST呢?给个例子,谢谢
http://community.csdn.net/Expert/TopicView3.asp?id=5655091
解决
1。
// 事实上你可以直接在 C# 中使用 Microsoft.VisualBasic.Collection
// 需要添加对 Microsoft.VisualBasic.dll 的引用
Microsoft.VisualBasic.Collection d = new Microsoft.VisualBasic.Collection();
d.Add("Northsnow", null, null, null); // C# 不支持可选参数, 若不指定 传入 null
d.Add("塞北的雪", null, null, null);
d.Add("http://blog.csdn.net", null, null, null);
ArrayList t = new ArrayList(d);
StringBuilder sb = new System.Text.StringBuilder();
2。
以上代码比较适合将进行 VB.net 向 C# 的直接移植,
因为
Visual Basic 集合与 System.Collections、System.Collections.Generic 和 System.Collections.Specialized 命名空间中的 .NET Framework 集合不兼容
具体没有实践过,不知道是否会导致后期维护的困难。
3。
若新项目,最佳实践实现是,使用 System.Collection.ArrayList
ArrayList list1 = new ArrayList();
list1.Add("a");
list1.Add("b");
ArrayList list2 = new ArrayList(list1);
补充
// 对于 .net 2.0 最佳还是选择泛型版本的 List
// using System.Collections.Generic;
IList<int> list2 = new List<int>(2);
list2.Add(119);
list2.Add(911);
//
Visual Basic Collection 类 http://msdn2.microsoft.com/zh-cn/library/microsoft.visualbasic.collection(VS.80).aspx
总结
1. .NET 果然跨语言^_^
2. 由于语言特性本身的差异,需要注意对特定语法支持,特别是开发类库的时候
3. 为保证语言的兼容性和互操作性,尽可能选择非特定语言支持的类库,而使用 System 命名空间及其子命名空间的类
相关文章推荐
- 如何调用 Oracle 存储过程在 Visual Basic.NET 使用 Microsoft Oracle 托管提供程序
- OOP with Microsoft Visual Basic .NET and Microsoft Visual C# .NET Step by Step
- 如何调用 Oracle 存储过程在 Visual Basic.NET 使用 Microsoft Oracle 托管提供程序
- Microsoft.VisualBasic.dll的妙用and 改善C#公共程序类库质量的10种方法
- OOP with Microsoft Visual Basic.NET and Visual C# Step By Step
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 未能加载文件或程序集 Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0 解决 亲测
- Microsoft.VisualBasic.DateAndTime.Timer 与 DateTime.Now.TimeOfDay.TotalSeconds 相当
- Visual Basic .NET 和 Visual C# .NET 程序员需要解决的安全问题(二)
- 防止对 Visual Basic .NET 或 C# 代码进行反向工程
- Microsoft.VisualBasic.Devices之Info 类
- 【转自CSDN】深入 Microsoft.VisualBasic.Strings.StrConv 簡繁轉換
- [ZT] Create a Microsoft Access Database Using ADOX and Visual Basic .NET
- 如何在 Microsoft Visual C# .NET 中实现 Microsoft Excel 自动化[摘抄MSDN]
- An Introduction to Programming Using Microsoft Visual C# 2005 Express Edition
- C#调用Microsoft.DirectX.DirectSound问题记录及解决
- Microsoft.VisualBasic.PowerPacks相关错误解决办法
- c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件
- C# 处理汉字、拼音、笔画转换 Microsoft Visual Studio International Pack 1.0
- 防止对 Visual Basic .NET 或 C# 代码进行反相工程