構建我的C#項目時,我當前正在收到CS1061錯誤。這個錯誤只發生在我的代碼中的一個非常特定的地方。C#在部分類中引用方法時編譯失敗
錯誤CS1061描述:'type' does not contain a definition for 'member' and no extension method 'name' accepting a first argument of type 'type' could be found (are you missing a using directive or an assembly reference?).
我有兩個文件,一個main.cs
和partial.cs
。 partial.cs
是main.cs
的部分類別。 main.cs
包含兩個類,main
類和helper
類。當helper
類實例化main
類,併爲建立一個在partial.cs
文件中定義的main
類的方法的調用
錯誤被拋出。
從我的理解,這不應該是一個問題。 main
類被分成兩個文件,但在編譯期間,部分類被組合在一起。
這個問題似乎非常相似,但他的決議並不適用於我。這兩個文件都包含在項目中。 ASP.NET C# partial class in separate files not working CS1061
任何想法?
main.cs
namespace Price.WS
{
public partial class Main : BaseWebService
{
public Main()
{
//CODEGEN: This call is required by the ASP.NET Web Services Designer
InitializeComponent();
}
private DataSet _TestMethod()
{
//Stuff
}
}
public class Helper: IExchangeable
{
public void Test()
{
using (Main main = new Main())
{
main.TestMethod(); //This is where the error gets thrown. The compiler doesn't see TestMethod() as a method of main
}
}
}
}
Partial.cs:
namespace Price.WS
{
public partial class Main : BaseWebService
{
[WebMethod()]
public DataSet TestMethod()
{
//Stuff
return _TestMethod();
//Stuff
}
}
}
編輯:看來,這是不特定於被稱爲輔助類的方法。在單獨的類中構建期間還會引發另一個錯誤。除了沒有額外的輔助類以外,這個類的設置方式與上一次相同。當部分類的主要部分調用在另一個文件中的部分類中聲明的方法時,此失敗。
你在類Main中有一個_TestMethod()嗎?你正在返回你沒有想到的東西。在基類中它是私人的,你不能訪問它。 – Bit
不要嘗試從另一個類中調用* private *的方法。 –
哎呀糟糕的複製粘貼。這是一種公開的方法。 –