2016-04-12 41 views
-1

我創建了這個類的dll:無法看到DLL類的方法

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

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

我已經編譯了該項目,包括裏面的另一個解決方案的dll,並嘗試訪問getTrace()方法是這樣的:

Tracers.getTrace(); 

,但我得到:

它必須是屬性的引用,方法或字段不是靜態的「Trace.Tra cers.getTrace()'

我不知道我做錯了什麼。另一個奇怪的事情是,如果我只寫Tracers.智能感知菜單出現,只告訴我:

  1. 的Equals
  2. 的ReferenceEquals

回答

4

你沒有的Tracers一個實例,所以只有靜態方法是可見的。

使static會的工作方法:

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

或創建Tracers一個實例:

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

另外請注意,命名約定要求getTrace有資本G,所以:GetTrace

+0

哦謝謝你,對我來說這是一個愚蠢的錯誤。祝你有美好的一天:) – Sandokan

3

使用此:

Tracers t = new Tracers(); 
t.getTrace(); 
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(); 
+0

你太遲了11分鐘。 –

+0

奧普斯,沒問題 – Mostafiz