2012-12-12 107 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) 
{ 

}