C#编译器可以编译VB.Net代码吗?

新的一天

我在一本书中发现了以下内容。我正在学习并且对以下内容感到好奇。

IL体系结构的第二个主要优点是,它使框架成为语言中立的。在很大程度上,语言的选择不再取决于无语言的能力,而是由开发人员或tam的偏好所决定。您甚至可以在单个应用程序中混合使用语言。可以从VB2005类派生用C#编写的类,并且在VB @ 005方法中捕获在C#方法中引发的异常。

我的问题是,ASP.NET是否使用同一编译器来编译VB.net和C#?

更新:(另一个查询)

C#编译器可以编译VB.Net代码吗?

阿达什·沙阿

它们有单独的编译器(C#的csc.exe和VB.Net的vbc.exe),但是它们都被编译为IL,然后在运行时JIT将其编译为机器代码。

问题1:C#编译器可以编译VB.net代码吗?

答案1:不行,您将在下面的示例中看到。如果您尝试这样做,则会产生错误,因为它会查找C#语法。

问题2:我认为那是他们在书中所说的。由于是两个编译器,因此我认为它不兼容

答案2:并不是说您可以使用C#编译VB代码,而是说您可以像在下面的示例中那样在单个应用程序中混合语言,并且仍然能够编译C#和VB(使用它们的编译器)。

请参阅以下示例以了解其工作原理。我创建了一个带有C#类的C#项目和带有VB类的VB项目的解决方案。您不应在同一项目中混用C#和VB类,因为在构建过程中如果它是C#项目,它将忽略vb文件。

解决方案结构

ClassCSharp.cs的内容:

namespace ClassLibraryCSharp
{
    public abstract class ClassCSharp
    {
        public int MyProperty { get; set; }

        protected abstract void Test();
    }
}

C#ClassLibrary中ClassVBInCSharp.vb的内容。了解如何从C#类继承并访问其属性并重写该方法。

Namespace ClassLibraryVB
    Public Class ClassVBInCSharp
        Inherits ClassCSharp
        Property Test2 As Integer

        Protected Overrides Sub Test()
            Test2 = MyBase.MyProperty
        End Sub
    End Class
End Namespace

请参阅以下我运行的命令:

vbc.exe /reference:"ClassLibraryCSharp.dll" /target:library /out:"ClassLibraryCSharpVbVersion.dll" "ClassVBInCSharp.vb"
Microsoft (R) Visual Basic Compiler version 12.0.20806.33440
Copyright (c) Microsoft Corporation.  All rights reserved.

参见上面的VB编译器,用于编译vb类。

csc.exe /reference:"ClassLibraryCSharp.dll" /target:library /out:"ClassLibraryCSharpVersion.dll" "ClassVBInCSharp.vb"
Microsoft (R) Visual C# Compiler version 4.0.30319.33440 for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.

ClassLibrary1\ClassVBInCSharp.vb(1,1): error CS
0116: A namespace cannot directly contain members such as fields or methods

如果我尝试使用C#编译器来编译vb类,请参见上文,它在寻找C#语法时会抛出错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#编译器可以编译VB.Net代码吗?

来自分类Dev

C#编译器会优化此代码吗?

来自分类Dev

C#编译器可以区分I / O绑定任务和计算任务吗?

来自分类Dev

我可以使用C / C ++编译器吗?

来自分类Dev

C#中的C / C ++代码编译器

来自分类Dev

编译器可以优化此代码段吗?

来自分类Dev

C#编译器不会优化foreach吗?

来自分类Dev

这是C#编译器完成的优化吗?

来自分类Dev

是否有C C ++ C#编译器可编译为机器代码

来自分类Dev

是否有C C ++ C#编译器可编译为机器代码

来自分类Dev

C编译器会重复删除(合并)代码吗?

来自分类Dev

如何阻止 VB 编译器在 C# ASP.NET 4.5 Web 窗体站点中运行?

来自分类Dev

您可以将C ++编译器与同一编译器的不同版本混合使用吗

来自分类Dev

查看哪些代码由C#编译器预编译

来自分类Dev

编译器拒绝在Unity3d C#中编译正确的代码

来自分类Dev

“ C#编译器”足够聪明,可以删除由于ConditionalAttribute优化而没有副作用的代码

来自分类Dev

Fortran 95编译器可以编译Fortran 77代码吗?

来自分类Dev

用C ++编译器编译C代码

来自分类Dev

C代码过于依赖编译器

来自分类Dev

那是C ++编译器错误吗?

来自分类Dev

使用多个编译器编译C代码

来自分类Dev

.net编译器执行哪些过程来编译代码?

来自分类Dev

从源代码编译器是否可以带来更好的优化?

来自分类Dev

C ++可以(编译器)删除(虚拟)私有基类吗?

来自分类Dev

我可以在没有Visual Studio的情况下使用Visual C ++编译器吗?

来自分类Dev

您可以在Windows上安装多个C ++编译器吗?

来自分类Dev

我可以告诉C ++编译器本身如何进行任意类型转换吗?

来自分类Dev

您可以在Windows上安装多个C ++编译器吗?

来自分类Dev

C ++可以(编译器)删除(虚拟)私有基类吗?

Related 相关文章

  1. 1

    C#编译器可以编译VB.Net代码吗?

  2. 2

    C#编译器会优化此代码吗?

  3. 3

    C#编译器可以区分I / O绑定任务和计算任务吗?

  4. 4

    我可以使用C / C ++编译器吗?

  5. 5

    C#中的C / C ++代码编译器

  6. 6

    编译器可以优化此代码段吗?

  7. 7

    C#编译器不会优化foreach吗?

  8. 8

    这是C#编译器完成的优化吗?

  9. 9

    是否有C C ++ C#编译器可编译为机器代码

  10. 10

    是否有C C ++ C#编译器可编译为机器代码

  11. 11

    C编译器会重复删除(合并)代码吗?

  12. 12

    如何阻止 VB 编译器在 C# ASP.NET 4.5 Web 窗体站点中运行?

  13. 13

    您可以将C ++编译器与同一编译器的不同版本混合使用吗

  14. 14

    查看哪些代码由C#编译器预编译

  15. 15

    编译器拒绝在Unity3d C#中编译正确的代码

  16. 16

    “ C#编译器”足够聪明,可以删除由于ConditionalAttribute优化而没有副作用的代码

  17. 17

    Fortran 95编译器可以编译Fortran 77代码吗?

  18. 18

    用C ++编译器编译C代码

  19. 19

    C代码过于依赖编译器

  20. 20

    那是C ++编译器错误吗?

  21. 21

    使用多个编译器编译C代码

  22. 22

    .net编译器执行哪些过程来编译代码?

  23. 23

    从源代码编译器是否可以带来更好的优化?

  24. 24

    C ++可以(编译器)删除(虚拟)私有基类吗?

  25. 25

    我可以在没有Visual Studio的情况下使用Visual C ++编译器吗?

  26. 26

    您可以在Windows上安装多个C ++编译器吗?

  27. 27

    我可以告诉C ++编译器本身如何进行任意类型转换吗?

  28. 28

    您可以在Windows上安装多个C ++编译器吗?

  29. 29

    C ++可以(编译器)删除(虚拟)私有基类吗?

热门标签

归档