我可以通过COM从VB6调用C#类的静态方法吗?

时间:2015-04-16 13:25:05

标签: c# .net dll vb6 com-interop

我希望能够将此COM类用作静态类,并从VB6应用程序静态调用方法/函数。这是我目前的课程:

using System;
using Linq;
using System.Runtime.InteropServices; 

namespace VNDBUtils
{
    [ComVisible(true)]
    public static class BracketString(){

      [ComVisible(true)]
      public static string HellowWorld(){

          get{
            return "Hello World";
          } 
      }
   }
}

这是我当前在VB6中调用类的方式,我正在创建类的对象并以这种方式调用它。但是现在该类是静态的,我不确定要使用的确切语法。

我原本以为可以使用以下语法调用它:

Dim test As VNDBUtils
test.BracketString.HelloWorld(); 

但是这给了我一个错误,所以如果有人能给我一个例子,说明如何从Visual Basic 2006应用程序静态调用这个类。谢谢!

1 个答案:

答案 0 :(得分:0)

使用static关键字:

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(BrackString.HelloWorld());
            Console.Read();
        }
    }

    public static class BrackString
    {
      public static string HelloWorld()
      {
            return "Hello World" ;
      }
   }
}

不使用static,您必须创建类BrackString的新对象,如下所示:

BrackString brackString = new BrackString();
Console.WriteLine(BrackString.HelloWorld());

因此,没有必要对Dim VNDBUtils"进行调整,静态方法的要点是它可以在没有实例化的情况下使用。注意类名不要带括号,并且在程序行之后需要一个分号!