2012-07-12 68 views
1

我正在調用一個簡單方法,它接收我的一個類的實例並返回另一個類實例。由於某些原因,它在方法聲明中不能識別它們,但在方法內部和方法被調用之前對它們都是正確的。無法找出原因。這是我的代碼;類未被識別爲返回/參數類型

public ReceiptResponse DownloadReceipt(ReceiptRequest request) 
    { 
     ReceiptResponse call = null; 
     ... 
    } 

ReceiptResponseReceiptRequestpublic線都拋出錯誤,但call創造優良的某些原因。這裏是一個類(兩者幾乎相同);

public class ReceiptRequest 
{ 
    public String ClientID; 
    public String PolNum; 
    public String RecNum; 
} 

我的錯誤

錯誤16類型或命名空間名稱 'ReceiptRequest' 不能 (是否缺少using指令或程序集引用?)

UPDATE

我肯定有要求的使用聲明,因爲如果我將鼠標懸停在ReceiptResponse上創建call行,那麼它會在工具提示中顯示使用聲明。

這是爲什麼?

+0

你有沒有檢查過你沒有錯過你的班級的右大括號? – 2012-07-12 11:29:59

+0

是的,每個都有2個開放的大括號和2個大括號。不太可能有錯誤:P – windowskm 2012-07-12 11:31:47

+0

@killianmcc你是什麼意思的「它不承認他們」?這是設計時間還是運行時間? – ken2k 2012-07-12 11:32:25

回答

1

如果您RequestReceipt類是在另一個項目中,檢查這兩個項目的目標框架。是一樣的嗎?如果不是,請檢查具有ReceiptRequest類的項目的目標框架是否爲.NET Framework 4,另一個是.NET Framework 4 Client概要文件。

目標框架4客戶端配置文件的項目無法引用具有目標框架4(=完整)的其他項目。

+0

+1。 Visual Studio 2010中的默認框架是4-Client Profile。我討厭那種感覺,因爲每次都會讓我出門。 – 2012-07-12 12:49:38

0

這些類在不同的程序集中? 如果是這樣你需要參考其他項目。

這些類在不同的命名空間中嗎? 如果您需要在文件頂部添加using語句,或者在聲明變量時聲明完全限定名稱。

using my.name.space; 
... 
var receipt = new RequestReceipt(); 

var receipt = new my.name.space.RequestReceipt(); 
+0

是的,你肯定會使用包含的語句。我會更新我的問題。 – windowskm 2012-07-12 11:48:25