【问题标题】:What are the effects of referencing the visual basic namespace from a C# application?从 C# 应用程序引用 Visual Basic 命名空间有什么影响?
【发布时间】:2014-04-08 04:09:09
【问题描述】:

我一直在研究在我的 C# 应用程序中完成一项半琐碎任务的最佳方法,而似乎最容易实现的答案涉及引用 Microsoft.VisualBasic 命名空间。 (具体来说,我正在进行 CSV 处理并希望使用 TextFieldParser 类,但这与这个问题并不真正相关)。

这对我的申请有什么影响?我知道它将引用 .NET 框架中的另一个命名空间,但它与引用任何其他命名空间有什么不同吗?拥有一个单独的 VisualBasic 命名空间有什么意义?

我并不完全反对所有 Visual Basic(它只是编写 .NET 应用程序的另一种语法),但我想了解为什么有一个单独的命名空间仅用于 VB 以及在 C# 中使用它的含义应用。我不喜欢盲目地使用和依赖我不懂的东西。

有这个问题:Is the Microsoft.VisualBasic namespace "true .NET" code?,但它并没有真正完全回答我关于包括这个命名空间将对我的应用程序产生什么影响的问题。 (另外,10 个调用中的 1 个不只是包装器呢?)

【问题讨论】:

  • 这并没有什么问题......除了有更好的第三方库用于 CSV 解析/处理(用 C# 编写:))。
  • 你没有引用 namespaces,你引用的是 assemblies。单个程序集可能包含多个命名空间中的类型。多个程序集可能包含单个命名空间中的类型。
  • @Damien_The_Unbeliever 感谢您对参考资料的澄清。在您发表评论之前,我还没有完全明白使用命名空间和引用某事物之间的区别。

标签: c# .net namespaces


【解决方案1】:

为Microsoft.VisualBasic.FileIO.TextFieldParser 类包含Microsoft.VisualBasic.dll 程序集并没有错或特别之处。

  • 更多的程序集可能意味着更长的加载时间(如果在代码的早期提到),但如果您需要某些功能,它必须来自某个地方 - 所以不太可能是严重的问题。
  • 这不是“系统”程序集,因此不太可能移植到其他运行时。您正在寻找的课程可在 Mono 中找到,因此不必担心,如果需要,可能需要仔细检查 WinRT 支持。
  • 专用库可能会提供更大的灵活性,但 Microsoft.VisualBasic 已经存在于 .Net 中,因此如果它的功能足以满足您的情况,它可能会简化设置。

【讨论】:

  • 感谢您还指出这不在系统中,它是一个单独的程序集。您的回答和 Damien 上面关于引用程序集而不是命名空间的评论消除了我的困惑。 Microsoft.VisualBasic 程序集是所有(大多数?) VB.NET 方法/类/等的所在,从我的 C# 中引用它只是添加对另一个程序集(又名 DLL)的引用。
猜你喜欢
  • 1970-01-01
  • 2012-03-14
  • 2011-02-22
  • 2013-07-14
  • 2010-12-27
  • 2010-09-14
  • 2018-08-20
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多