代码之家  ›  专栏  ›  技术社区  ›  Amit Kumar Jha

在同一应用程序中使用VB.NET和C#?

  •  16
  • Amit Kumar Jha  · 技术社区  · 17 年前

    我正在MS Visual Studio 2005中开发一个基于GUI的应用程序,我只想 了解是否可以在同一项目中同时使用VB.NET和C#。或者我可以在我的VB.NET项目中包含一个用C#编写的模块吗?

    我有一个用C#编写的类,我想在基于VB.NET的项目中使用它,因此如果我可以包含并调用该项目中的函数,那么我就不必在VB.NET中再次编写该类。

    所以,请帮助我,因为我是一个新的.NET编程。

    7 回复  |  直到 17 年前
        1
  •  27
  •   Konrad Rudolph    17 年前

    我只是想知道在同一个项目中同时使用VB和C#是否可行。

    项目 解决方案 .

    或者我可以在我的VB.net项目中包含一个用C#编写的模块。

    我建议您创建一个包含两个项目的解决方案:一个在C#中,它形成了一个从VB项目中使用的库。这很简单,易于维护和扩展。

        2
  •  16
  •   Jared Harley    17 年前

    我自己从来没有这样做过,但我知道你可以将C代码编译成dll,然后在你的VB项目中加载并引用dll。

    从…起 "Calling C# class in VB.net"

    我想你想要的C代码 必须将use编译为DLL。一旦 将该项目添加到您的VB.Net 需要,然后你可以使用C# 密码

    How To: Create and Use C# DLLs (来自MSDN,适用于VS2005)

        3
  •  9
  •   Martin Harris    12 年前

    您还需要确保您的C#代码符合CLS。这意味着它不会公开任何其他.NET语言无法理解的功能(例如,未签名的INT-在VB中不存在,或仅按大小写区分不同的类-因为VB不区分大小写)。要做到这一点,您需要添加一个属性,以便在您违反任何准则时编译器将引发错误。 This article 演示如何执行此操作:

    CLSCompliant属性可应用于程序集、模块、,

    使用

    using System; 
    [assembly:CLSCompliant(true)]
    

    要将特定方法标记为符合CLS,请使用以下语法 使用

    [CLSCompliant(true)]  
    public void MyMethod()`
    
        4
  •  3
  •   Peter Mortensen Pieter Jan Bonestroo    17 年前

    http://msquant.sourceforge.net/ ,而且效果很好)。

    您不需要担心DLL,只需参考 (使用“添加参考”对话框中的“项目”选项卡)。例如,如果需要在C#代码/项目中使用函数,请在VB.NET项目中添加对C#项目的引用。

        5
  •  3
  •   K.J.    11 年前

    不能在同一项目中使用C#文件和VB文件。但是,您可以将VB和C#项目放在同一个解决方案中并引用它们。

    在代码中,您可以使用:

    Imports namespace 
    

    或

    using namespace
    

    一旦将引用添加到适当的项目中,就可以构建解决方案了。

        6
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    你还必须知道,如果你有 VB.NET 以 C#

    就个人而言,我不喜欢这样,但我总是在引用项目中修改代码,不知道为什么我的更改不在我使用它的代码中,我发现,哦,我必须重建。

    对于临时帮助,这是可以接受的,但不适用于每天的编程。

        7
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    VB.NET 我会使用上面发布的解决方案之一

    你可以试试类似的东西* Convert C# to VB.NET . 它将C#转换为VB.NET代码。当我必须转换网络上用C#编写的内容时,我只使用此页面。