2012-12-12 144 views
0

我有以下幾點:訪問變量

public ActionResult GetRpt(string pNum) 
    { 
     string dirPath = "C:\\Folder1"; 
     string pvtResult = GetType1Report(pNum); 
    } 

    private string GetType1Reportt(string paslNum) 
    { 
     string dPath = dirPath;   
    }  

我需要從內GetType1Report訪問dirPath。

我得到一個消息,dirPath不存在於GetPReport中。

使用GetPReport訪問dirPath的最佳方式是什麼?我正在考慮將此視爲公共靜態,但不確定這是否是最好的方式。

+0

是什麼?GetPReport –

回答

0

您不需要爲此使用public static變量。如果您在方法之外聲明變量爲private,您仍然可以訪問方法中的變量。

public class myClass 
{ 
    private string dirPath; 

    public ActionResult GetRpt(string pNum) 
    { 
     dirPath = "C:\\Folder1"; 
     string pvtResult = GetType1Report(pNum); 
    } 

    private string GetType1Reportt(string paslNum) 
    { 
     dPath = dirPath;   
    } 
} 
5

將它作爲變量發送到GetType1Reportt?

private string GetType1Reportt(string paslNum, string dirPath) 
{ 
    string dPath = dirPath;   
} 
+2

多清潔準確的答案+2 – MethodMan

+0

得拿出他們如何使用的方法,因爲我認爲他們絕對是知道 –

+0

的問題。看着這個功能的任何人都知道價值在哪裏發揮作用。類級別變量的問題在於,在受到操縱等情況下,它並不總是顯而易見的,儘管現代開發環境在公平性方面有所緩解。我會在這裏更進一步,使GetType1Report靜態,再次向讀者說明該方法不依賴於實例變量。 – PeteH

0

您想將您的變量傳遞給方法。 我也建議不要硬編碼一個本地路徑。當您在沒有「C:\」的PC上運行時會發生什麼?

public ActionResult GetRpt(string pNum) 
    { 
     string dirPath = "C:\\Folder1"; 
     string pvtResult = GetType1Report(pNum, dirPath); 
    } 

    private string GetType1Reportt(string paslNum, string dirPath) 
    { 
     string dPath = dirPath;   
    }  
+0

???試着更有建設性,我們都必須從某個地方開始,至少OP已經表現出一些努力 – MethodMan

+0

比給出答案更有建設性?我很困惑... –

+0

如何建議OP打C#書籍並觀看一些視頻不具有建設性? –

2

是通過變量

public ActionResult GetRpt(string pNum) 
{ 
    string dirPath = "C:\\Folder1"; 
    string pvtResult = GetType1Report(pNum, dirPath); 
} 

private string GetType1Reportt(string paslNum, string dPath) 
{ 

}