2017-01-16 142 views
-3

我是新来的C#。我想使用我在public方法中声明的变量来使用私有方法。我已经尝试过,但我无法访问。有人能帮我吗?如何从公共方法访问局部变量私人方法在C#

[TestMethod, MNUSystemTest(TestAreas.UIAcceptance)] 
[Description("TODO")] 
public void TemplateTest() 
{ 
    var matAcc = AccountManager.New<MatAccount>("MatAccount.xml") 
    .WithUserNamePrefix("mat") 
    .AddWithoutWorkflow(); 
    var matAccDisplayName = AccountManager.FormatDisplayName(matAcc); 
    var matAccFriendlyDisplayName = AccountManager.FormatDisplayName(matAcc, friendly: true); 
} 

在上面的代码中,我想用“matAcc”变量值来测试辅助方法,即私有方法

private void CreateTestAccounts(string optionMask) 
{ 
    depAcc1 = 
    AccountManager.New<DepartmentAccount>("DepartmentAccount.xml") 
     .WithUserNamePrefix("dep" + optionMask) 
     .WithAncestor(matAcc) 
     .AddWithoutWorkflow(); 
} 
+0

这个平台是不是要学会在一般的语言或编程非常基本的。请使用书籍或官方文档等其他来源了解不同类型的变量以及访问方式/方式。 –

+0

你可以尝试反射,但通常你只能访问跨测试方法的类变量。此外,您应该发布更完整的代码或指定两个方法是否在同一个类中。 –

+0

@lukegv。感谢您的建议 – Vickky

回答

0

这是没有意义有方法之间提供可变的。

想一想变量的含义 - 如果它属于一个类,则应该在该类中定义该变量,然后在该类中全局访问该变量。

如果没有,你可能想:

  1. 你的第一个返回的结果(无论是作为该方法的结果,或使用“出”修正)
  2. 你的第二个方法就得到这个值的方法参数,所以你可以在那里使用它。
0

你不能那样做。您的matAcc变量仅在方法范围内可用。如果你想有一个变量(场),您可以访问和修改一个类里面,你可以做这样的事情:

class Program 
{ 
    string global_test = ""; 

    public void publicMethod() 
    { 
     var private_test = "whatever"; 
     global_test = "testString"; 
    } 

    private void privateMethod() 
    { 
     //cant do this 
     //var testPrivate = private_test; 

     var testPrivate = global_test; 
    } 
} 
+1

您说**全局变量**,但在您的示例中创建了**成员字段**。 –

+0

@ m.rogalski,你是对的,我的坏。 – salemetal

相关问题