Ami*_*Jha 16 c# vb.net visual-studio-2005
我在MS Visual Studio 2005中开发基于GUI的应用程序,我只想知道是否可以在同一个项目中同时使用VB.NET和C#.或者我可以在我的VB.NET项目中包含用C#编写的模块吗?
我有一个用C#编写的类,我想在我的基于VB.NET的项目中使用它,所以如果我可以包含和调用该项目中的函数,那么我将不必再在VB.NET中编写该类.
所以请帮助我,因为我是.NET编程的新手.
Kon*_*lph 27
我只想知道在同一个项目中可以同时使用VB和C#.
不,不在同一个项目中.另一方面,您可以在同一解决方案中使用它们.
或者我可以在我的VB.net项目中包含用C#编写的模块.
我建议您创建一个包含两个项目的解决方案:一个在C#中,它构成了一个从VB项目中使用的库.这很简单,易于维护且易于扩展.
Jar*_*ley 16
我自己从来没有这样做,但我知道你可以将C#代码编译成一个dll,然后加载并引用你的VB项目中的dll.
我认为您要使用的C#代码必须编译为DLL.完成后,简单地将对该项目的引用添加到VB.Net项目,导入所需的命名空间,然后就可以使用C#代码.
另请参见如何:创建和使用C#DLL(来自MSDN,适用于VS2005)
您还希望确保C#代码符合CLS.这意味着它不会公开暴露其他.NET语言无法理解的任何功能(例如,无符号的int - VB中不存在,或者只是大小写不同的类 - 因为VB不区分大小写).要执行此操作,您需要添加一个属性,以便在您违反任何准则时编译器将引发错误.本文介绍如何执行此操作:
CLSCompliantAttribute可以应用于程序集,模块,类型和成员.
要将整个程序集标记为符合CLS,请使用以下语法
Run Code Online (Sandbox Code Playgroud)using System; [assembly:CLSCompliant(true)]为了将特定方法标记为符合CLS,使用以下语法
Run Code Online (Sandbox Code Playgroud)[CLSCompliant(true)] public void MyMethod()`