2017-10-05 63 views
0

试图在C#中构建和使用类库。类库中的对象不包含方法

创建类库: 文件 - >新建项目 - > Windows的>经典桌面 - >类库 代码:

namespace ClassLibrary2 
{ 
    public class Class1 
    { 

     public static long Add(long i, long j) 
     { 
      return (i + j); 
     } 

    } 
} 

试图从控制台应用程序使用它:

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ClassLibrary2.Class1 c = new Class1(); 
      c. //no Add function 


     } 
    } 
} 

但是c对象不包含Add函数。为什么?如何解决它?

+0

变化与ClassLibrary2.Class1 C =新ClassLibrary2.Class1(); –

+4

@AlexPashkin:这不会使一个静态方法可用,就好像它是一个实例方法... –

+0

@JonSkeet它使代码工作:)更优雅的方法是使用Add方法作为扩展。 –

回答

3

Add是一种静态方法。你不能在C#中调用“通过”实例的静态方法。这与它在不同的图书馆中无关。

可以调用方法为:

long result = ClassLibrary2.Class1.Add(10, 20); 

,或者如果你确实有一个using指令为ClassLibrary2(目前还不清楚从问题):

long result = Class1.Add(10L, 20L); 

或者,改变方法是一个实例方法,如果这就是你想要的 - 那么你可以调用c.Add(10L, 20L)

1

您将Class1声明为静态的,则不需要实例来使用它。

ClassLibrary2.Add(1, 1); 
1

添加静态方法。你必须调用它的静态方法:

Class1.Add(1,2); 
0

如果你的意图,使之具体实例删除静态

namespace ClassLibrary2 
{ 
    public class Class1 
    { 

     public long Add(long i, long j) 
     { 
      return (i + j); 
     } 

    } 
}