C# 调用 Microsoft.VisualBasic.Collection

问题

None.gif Dim  d  As   New  Collection 
None.gifd.Add(
" Northsnow "
None.gifd.Add(
" 塞北的雪 "
None.gifd.Add(
" http://blog.csdn.net "
None.gif
Dim  t  As   New  ArrayList(d) 
None.gif
Dim  sb  As   New  System.Text.StringBuilder() 
None.gif
If  t.Count  >   0   Then  
None.gifsb.Append(
" ArrayList中共有 成员  "
None.gifsb.Append(t.Item(
2 ).ToString) 
None.gifsb.Append(
"  个 "
None.gif
For   Each  aa  As   String   In  t 
None.gifsb.AppendLine() 
None.gifsb.Append(aa) 
None.gif
Next  
None.gif
End   If  
None.gif
MsgBox (sb.ToString) 
None.gif
None.gif以上是使用ARRAYLIST存储一个集合,VB中可以使用collectin,将其传入arraylist,而在C#中如何定义这个东西,使他能够传入ARRAYLIST呢?给个例子,谢谢
http://community.csdn.net/Expert/TopicView3.asp?id=5655091

解决

None.gif 1
None.gif
//  事实上你可以直接在 C# 中使用 Microsoft.VisualBasic.Collection
None.gif
//  需要添加对 Microsoft.VisualBasic.dll 的引用
None.gif
Microsoft.VisualBasic.Collection d  =   new  Microsoft.VisualBasic.Collection();
None.gifd.Add(
" Northsnow " null null null );  //  C# 不支持可选参数, 若不指定 传入 null
None.gif
d.Add( " 塞北的雪 " null null null );
None.gifd.Add(
" http://blog.csdn.net " null null null );
None.gifArrayList t 
=   new  ArrayList(d);
None.gifStringBuilder sb 
=   new  System.Text.StringBuilder();
ExpandedBlockStart.gifContractedBlock.gif
if  (t.Count  >   0 dot.gif {
InBlock.gifsb.Append(
"ArrayList中共有 成员 ");
InBlock.gifsb.Append(t.Count.ToString());
InBlock.gifsb.Append(
" 个");
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gif
foreach  ( string  aa  in  t)  dot.gif {
InBlock.gifsb.AppendLine();
InBlock.gifsb.Append(aa);
ExpandedBlockEnd.gif}

None.gif
None.gif
2
None.gif以上代码比较适合将进行 VB.net 向 C# 的直接移植,
None.gif
None.gif因为
None.gif
None.gifVisual Basic 集合与 System.Collections、System.Collections.Generic 和 System.Collections.Specialized 命名空间中的 .NET Framework 集合不兼容
None.gif
None.gif具体没有实践过,不知道是否会导致后期维护的困难。
None.gif
None.gif
None.gif
None.gif
3
None.gif若新项目,最佳实践实现是,使用 System.Collection.ArrayList
None.gif
None.gifArrayList list1 
=   new  ArrayList();
None.giflist1.Add(
" a " );
None.giflist1.Add(
" b " );
None.gifArrayList list2 
=   new  ArrayList(list1);

补充

 

None.gif //  对于 .net 2.0 最佳还是选择泛型版本的 List
None.gif        
//  using System.Collections.Generic;
None.gif
        IList < int >  list2  =   new  List < int > ( 2 );
None.gif        list2.Add(
119 );
None.gif        list2.Add(
911 );
None.gif        
//  dot.gif


Visual Basic Collection 类 http://msdn2.microsoft.com/zh-cn/library/microsoft.visualbasic.collection(VS.80).aspx

总结
1. .NET  果然跨语言^_^
2. 由于语言特性本身的差异,需要注意对特定语法支持,特别是开发类库的时候
3. 为保证语言的兼容性和互操作性,尽可能选择非特定语言支持的类库,而使用 System 命名空间及其子命名空间的类

转载于:https://www.cnblogs.com/Jinglecat/archive/2007/07/17/821824.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值