2012-02-02 2 views
0

구문 분석하고자하는 20 개의 텍스트 상자 (예 : 쉼표로 구분 된 목록)와 같은 인터페이스가 있습니다.함수에 인스턴스 이름을 전달하여 해당 메서드를 호출하는 방법

20 개의 함수를 작성하지 않으려면 텍스트 상자의 변수 이름을 인수로 사용할 문자열 []을 반환하는 함수를 작성하고 싶습니다.

과도한 번거 로움없이 가능합니까?

+3

이 유용하지 않습니다. 왜 TextBox 인스턴스를 직접 전달하지 않습니까? –

답변

2

변수 이름은 갈 길이 아닙니다. 런타임에 알려진 식별자를 텍스트 상자에 할당 할 수 있습니다. 이 UI 툴킷이 무엇인지 모르겠지만 (WinForms-ASP.NET-WPF-Silverlight) 일반적으로 컨트롤의 ID 또는 태그에 액세스 할 수 있습니다.

TextBox ageTextBox = new TextBox(); 
nameTextBox.Tag = "Age"; 

TextBox shoeSizeTextBox = new TextBox(); 
shoeSizeTextBox.Tag = "ShoeSize"; 

그런 다음 나중에

foreach(var ctrl in Controls.OfType<TextBox>.Where(tb => tb.Tag == someTag)) 
{ 
    Debug.WriteLine(tb.Tag+" = "+tb.Text); // or output to file etc.  
} 
관련 문제