2017-01-16 87 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

相關問題