2017-02-06 4 views
-4

버튼 클릭시 main 함수 내에서 초기화되는 변수 값에 액세스하려고합니다. 주요 함수 내에서 선언 된 변수 값을 button_click 메서드에 전달하는 방법은 무엇입니까? C#

{ 
    public string user { get; private set; } 

    public Dashboard(String loggedinUser) 
    { 
     InitializeComponent(); 
     var user = loggedinUser; 
     f1(user); 
     // WORKING WELL WHEN I'M CALLING f1() FROM HERE. 
    } 

    private void f1(String usr) 
    { 
     Dock_MainPanel.Children.Clear(); 
     Passuc psuc = new Passuc(usr); 
     Dock_MainPanel.Children.Add(psuc); 
    } 

    private void dash_nav_pw_Click(object sender, RoutedEventArgs e) 
    {  
     // USER VALUE DROPPING HERE. HENCE NULL VALUE IS PASSED TO FUNCTION  
     f1(user); 
    } 

나는 사용자에게 대시 보드 기능에 저장되고 내가 dash_nav_pw_Click 내부 기능 F1를 호출하고 할 때() 다음 번에 전달 될 값에 액세스하려면 ... 먼저 내 코드를 확인하시기 바랍니다. 전역 변수 및 값을 지정하는 방법은 일단 사용자 변수에 할당되면 정적이어야합니다.

+0

정말 답변을 관련 있지만, 당신은뿐만 아니라 C 번호에 대한 명명 규칙에 MS 가이드를 참조 할 수 없음 - https://msdn.microsoft.com/en-us/library/ms229045(v=vs. 110) .aspx –

답변

0

변경 var user = loggedinUser;에 단지 user = loggedinUser;

제 함수 내부 변수를 새로 만들어, 후자는 기존의 외부 변수에 기입한다.

+0

좋아요 (y) 감사합니다 –

-1

사용자는 수업의 공개 속성이므로 이미 액세스 할 수 있습니다. 대시 보드 내부의 로컬 변수로 설정하지 말고 값을 속성에 할당하면됩니다. 이 값을 사용하는 방법에 대한 정보를 제공하지 않았지만 속성에서 직접 값을 가져올 수 있습니다.

{ 
    public string user { get; private set; } 

    public Dashboard(String loggedinUser) 
    { 
     InitializeComponent(); 

     //set the value of the user property here 
     user = loggedinUser; 
     f1(user);   
    } 

    private void f1(String usr) 
    { 
     Dock_MainPanel.Children.Clear(); 
     Passuc psuc = new Passuc(usr); 
     Dock_MainPanel.Children.Add(psuc); 
    } 

    private void dash_nav_pw_Click(object sender, RoutedEventArgs e) 
    {  
      //Once the user property value was set by Dashboard, you can get it here 
      f1(user); 
    } 
+0

알았습니다. 고마워 (y) –