VB.net代码与c#代码的混合
我有一个vb.net解决方案,我想在那里添加一个用c#编写的新dll文件,并在vb.net编写的代码中使用dll中的功能 我用了好几次,它看起来很好用, 但是,像我想做的那样,用c#弄乱vb.net代码是明智之举吗 我所做的是多么危险啊 非常感谢您的帮助。您可以在同一个项目中混合使用VB和C#代码-我曾参与过几个混合了它们的项目,没有任何问题 您的语言混合似乎更加孤立——一个解决方案包含多个C#DLL和vb项目 我看不出有什么问题。您的DLL不是C#DLL,而是.NET DLL。一旦编译完成,你所拥有的就是IL——不管它来自哪种语言。应该没有问题,除非您遇到一种奇怪的边缘情况,其中DLL的接口包含Visual Basic不支持的内容。但这在很大程度上是一个边缘案例VB.net代码与c#代码的混合,c#,.net,vb.net,C#,.net,Vb.net,我有一个vb.net解决方案,我想在那里添加一个用c#编写的新dll文件,并在vb.net编写的代码中使用dll中的功能 我用了好几次,它看起来很好用, 但是,像我想做的那样,用c#弄乱vb.net代码是明智之举吗 我所做的是多么危险啊 非常感谢您的帮助。您可以在同一个项目中混合使用VB和C#代码-我曾参与过几个混合了它们的项目,没有任何问题 您的语言混合似乎更加孤立——一个解决方案包含多个C#DLL和vb项目 我看不出有什么问题。您的DLL不是C#DLL,而是.NET DLL。一旦编译完成,你
公共语言规范(CLS)定义了.NET语言必须支持的.NET功能子集,如果您的DLL符合CLS,那么您可以毫无问题地使用它。如果你对CLS、CTS、CLR等之间的区别感到困惑,那么我发现它的内容非常有用,尽管它主要是一本C#书。我认为最大的危险是让开发人员同时掌握这两种语言;虽然C#和VB.NET很相似,因为它们绑定到.NET framework,但它们有一些特点 你会发现许多优秀的C#程序员和许多优秀的VB.NET程序员,但要找到一个适用于这两种语言的优秀程序员可能会有点困难 另外,看看这篇文章:它谈到了需要记住的其他事项,如开发人员偏好、语言功能和招聘。找到了一个解决方案: 但是,可以使用 在同一个系统中使用不同的语言 项目您可能需要编写命令 行生成文件以生成项目。 在.NET framework SDK中,有一个 上面有样品。您可以在中访问它 C:\Program Files\Microsoft Visual 演播室 .NET\FrameworkSDK\Samples\Technologies\CrossDevLan 量规 此示例演示了如何使用 一个系统中的不同开发语言 单一项目。此示例创建 两个组件。第一个是图书馆 或定义简单 用托管语言编写的基类 C++的扩展。第二 程序集是一个可执行程序集 它定义了三个派生类 用C#、VB和IL编写 (中间语言)。这些类型 相互衍生,最终 来自用托管语言编写的基类 C++。最后,可执行文件创建 每个派生类型的实例 并为每个调用一个虚拟方法。 NET框架是一个环境 各种开发人员可以在其中工作 在开发过程中无缝地结合在一起 用他们选择的语言 但是您可以在asp.NET应用程序中同时使用VB.NET和C代码 您需要在App_Code文件夹中创建两个文件夹(例如vbFolder和csFolder),并将此代码写入web.config:
<system.web>
<compilation>
<CODESUBDIRECTORIES>
<ADD directoryName="vbFolder" />
<ADD directoryName="csFolder" />
</CODESUBDIRECTORIES>
</compilation>
</system.web>
.VB.NET和C都编译为MSIL(Microsoft中间语言)而不是本机代码,这将完成对本机(计算机)的完整编译通过最终用户计算机上的exist.NET frame work在最终用户计算机上运行,因此,如果操作系统x为.NET,则您的程序在操作系统x上运行良好,如果是操作系统y,则应用程序在操作系统y上运行良好,这就是.NET技术所提供的解决方案,它可以让.NET应用程序独立于操作系统
此外,还有一个COM封送拆收器服务,用于支持旧组件(控件)与.NET应用程序一起使用,例如,您可以在C#windows应用程序中调用vb6控件(*.ocx)
这是微软技术和技术之间的伟大融合
而且不需要开发人员在VB.NET和C#方面都很好,但是如果您需要,我在这里:)
但问题是为什么我两者都有
这仅仅是因为我提供了培训,所以我想扩展我的能力,我感到惊讶的是,除了语法之外,它们都非常接近。将您的代码标记为符合CLS,然后当从另一种.Net语言调用DLL时,如果您做了任何可能导致问题的事情,C#编译器将警告您
MSDN中的一些引用
与其他对象完全交互
不管他们说什么语言
在中实现,对象必须公开到
调用者仅调用以下功能:
所有必须使用的语言都通用
与交互操作。因此,,
这个
(CLS),这是一组基本的
许多人需要的语言特性
应用程序,已定义
您可以标记程序集、模块、,
类型和成员作为符合CLS的,使用
一些符合CLS的语言编译器,
,使您能够
指定您希望您的代码
符合CLS标准。这些编译器可以
检查CLS合规性并让您
了解代码何时使用功能
CLS不支持这一点
此外,您的组织现在需要C#技能以及Vb.Net技能。你可能应该说服自己这没问题,然后说服关键决策者 你的意思肯定是“相同的解决方案”?在一个项目中混用是行不通的。在同一个项目中可能有两种语言——只是不在同一个文件中。你们能否提供一些链接或参考,说明我们如何在同一个项目中混用c#和vb文件。不是我,也不是在该项目中工作的其他程序员,我一点也不懂vb语言。所以我们真的想转到c#。你可以引用vb.net程序集,就像你已经在做的那样,试着争取时间和你的老板一起创建一个使用单一语言的解决方案;你可以证明谈论生产力是无稽之谈