需要一个VB.NET中使用的C#类的工作示例

Geo*_*rge 1 c# vb.net dll

任何人都可以给我一个C#类的简短工作示例,它可以编译为DLL,以及VB.NET代码的示例,该代码基于此类创建对象并使用其成员(方法).C#类必须有一个命名空间,至少有一个类定义(很明显)和一些方法或者它们应该被调用的任何东西.我有别人的C#-DLL代码但在我的VB项目中看不到它的成员.我知道我必须在我的VB.NET项目中引用DLL.我正在使用VB.NET Express 2008和C#2008 Express.

Bri*_*ker 11

--foo.cs

namespace Sharp
{
    public class Foo
    {
        public string Message
        {
            get { return "This is from CSharp"; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

--bar.vb

Namespace bartest
   Public Class Bar

     Public Shared Sub Main()
        Dim test as Sharp.Foo
        test = New Sharp.Foo()
        Console.WriteLine(test.Message)

     End Sub

  End Class
End Namespace
Run Code Online (Sandbox Code Playgroud)

- 要编译的批处理文件

%WINDIR%\Microsoft.NET\Framework\v3.5\csc.exe /target:library foo.cs 
%WINDIR%\Microsoft.NET\Framework\v3.5\vbc.exe bar.vb /reference:foo.dll
Run Code Online (Sandbox Code Playgroud)

--run bar.exe

  • +1用于提供运行测试所需的所有内容,甚至包括批处理编译命令.真棒. (3认同)

Ode*_*ded 6

托管程序集(DLL和EXE)不是"C#"或"VB.NET"或任何其他语言.

它们是带有CIL的 .NET程序集,应该与任何.NET语言互操作.

在项目中引用此类程序集后,您就可以访问其中的所有公共类型.

如果您看不到任何成员,请确保它们确实被声明为public,因为C#将默认为internalprivate大多数成员.

此处阅读有关C#中访问修饰符的更多信息.