看不到dll类的方法

时间:2016-04-12 10:14:47

标签: c#

我用这个类创建了一个dll:

namespace Trace
{
    /// <summary>
    /// Get the stack
    /// </summary>

    public class Tracers
    {
        public string getTrace() 
        {
            return "test";
        }
    }
}

我编译了项目,将dll包含在另一个解决方案中并尝试访问getTrace()方法,如下所示:

Tracers.getTrace(); 

但我明白了:

  

它必须是属性的引用,方法或字段不是静态的'Trace.Tracers.getTrace()'

我不知道我做错了什么。另一个奇怪的事情是,如果我只写Tracers.智能感知菜单出现并只显示我:

  1. 等于
  2. 的ReferenceEquals

3 个答案:

答案 0 :(得分:4)

您没有Tracers的实例,因此只能看到静态方法。

使方法static可行:

public static string getTrace() 
{
    return "test";
}

或创建Tracers的实例:

Tracers t = new Tracers();
t.getTrace(); 

另请注意,命名约定要求getTrace有一个大写G,所以:GetTrace

答案 1 :(得分:3)

使用此:

Tracers t = new Tracers();
t.getTrace(); 

答案 2 :(得分:0)

您必须将方法设为static,如下所示

namespace Trace
{
    /// <summary>
    /// Get the stack
    /// </summary>

    public class Tracers
    {
        public static string getTrace() 
        {
            return "test";
        }
    }
}

然后你可以这样访问方法

Tracers.getTrace(); 

或者如果想要使用当前代码,则需要在方法调用之前实例化类

Tracers trace = new Tracers();
trace.getTrace();