2015-01-05 47 views
0

我試圖使用getMethod來訪問form1.cs中的數據,並在另一個類中使用它。在這裏,我收到了我不明白的錯誤。試圖使用getMethod訪問數據並在另一個類中使用

錯誤:

"Invalid token '=' in class, struct, or interface member declaration" and 
"Invalid token '(' in class, struct, or interface member declaration". 

以下是代碼:

方法內form1.cs

// select_emp_id_number is an INT 

    public int get_select_emp_id_number() 
    { 
     return select_emp_id_number; 
    } 

守則Absence class:我想從Form1.cs的

獲得數據
private int a = 0; 
    Form1 test = new Form1(); 
    a = test.get_select_emp_id_number(); 

我在這裏沒有看到任何問題。任何人都可以看到我做錯了什麼&幫我

+0

你不能直接在課堂內有任務(第三行)。它必須位於方法或構造函數內部。 – JacquesB

+0

在'private int a = 0'之前和之後顯示更多代碼。現在還不清楚這是否在課堂上,方法等方面。 – i486

+0

並且您可能不希望實例化** new ** Form1,而是使用已經顯示給用戶的那個。 – Dirk

回答

1

我假設你的調用代碼是在一個函數內。你不能在函數內聲明一個變量爲private

變化

private int a = 0; 

或者乾脆

int a = test.get_select_emp_id_number(); 

或者,如果你有在類中,而不是在一個函數代碼,將部分

a = test.get_select_emp_id_number(); 

功能或構造

編輯內:

根據您的意見,也許這個例子可以幫助你。您可以傳遞給Form1(或更好的是Form1中實現接口)的引用您Absence類:

public class Absence 
{ 
    private Form1 form1; 

    public Absence(Form1 form1) 
    { 
     this.form1 = form1; 
    } 

    private void MyFunction() 
    { 
     int a = form1.get_select_emp_id_number(); 
    } 
} 
+0

我以前嘗試過這種方法,我這樣做時收到一個不同的錯誤 - 「一個字段初始不能引用非靜態字段,方法或屬性「EPS.Absence.test '「 - 我不清楚如何解決這個問題。 –

+0

是否必須是一個字段,或者你是否只需要它作爲函數內的變量? –

+0

我不關心如何獲取數據,只要它在缺席類中可用,我需要將這些數據用於SQL目的 –

1

不是,

private int a = 0; 

嘗試:

int a = test.get_select_emp_id_number(); 

原因這是因爲你不能在一個函數中聲明私有變量。相反,它們用於定義解決方案中其他類的變量可用性。

+0

我以前嘗試過這種方法,在執行此操作時收到不同的錯誤 - 「字段初始值設定項無法引用非靜態字段,方法或屬性'EPS.Absence。測試'「 - 我不清楚如何解決這個問題。 –

+0

@CashMoney你必須把這行放在你的類或主要方法的構造函數中,具體取決於你使用它的地方。 – Alex

相關問題