2017-01-16 5 views
-3

私はC#を初めて使っています。パブリックメソッドで宣言した変数をプライベートメソッドに使いたい。私は試しましたが、私はアクセスできません。誰かが私を助けることができますか?私はテストヘルパーメソッドに「matAcc」変数値を使用する上記のコードでパブリックメソッドからローカルメソッドにプライベートメソッドにアクセスする方法#

[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); 
} 

プライベートメソッドすなわち

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

このプラットフォームは、一般的なプログラミングや言語の非常に基本的なことを学習することではなく、クラス内でアクセスしたり変更したりすることができる変数(フィールド)を必要とします。さまざまな種類の変数やアクセス方法/場所については、書籍や公式ドキュメントなどの他のソースを使用してください。 –

+0

あなたはリフレクションを試みることができますが、通常はテストのためのメソッド間でのみクラス変数にアクセスできます。また、より完全なコードを投稿するか、2つのメソッドが同じクラスにあるかどうかを指定する必要があります。 –

+0

@lukegv。あなたの提案をありがとう – Vickky

答えて

0

これは、メソッド間で使用可能な変数を持ってしても意味がありません。

変数の意味を考えてみましょう。変数がクラスに属している場合は、変数をクラスに定義してから、そのクラスでグローバルにアクセスできます。

ない場合は、あなたがしたいことがあります。

  1. (どちらの方法の結果として、またはOUT「」修飾子を使用して)結果を返すようにあなたの最初の方法
  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

関連する問題