static void Main(string[] args) { while (true) { Console.Write("입력 받을 형식 : Profile / Team : "); string input = Console.ReadLine(); GetTypeClass getTypeClass = new GetTypeClass(input); if (input == "Profile") { object profile = getTypeClass.makeInstance("손흥민", "557-1118"); getTypeClass.PrintMethods(profile, input); } else if (input == "Team") { object teamProfile = getTypeClass.makeInstance("토트넘", "런던"); getTypeClass.PrintMethods(teamProfile, input); } else if (input == "end") { Console.WriteLine("프로그램 종료"); break; } else { Console.WriteLine("잘못된 입력 방식입니다."); } } } //Main method
private void listBox_getType_SelectedIndexChanged(object sender, EventArgs e) { if (listBox_getMethod.Items.Count > 0) { listBox_getMethod.Items.Clear(); //클래스를 선택할때마다 기존에 쓰여진 Text 제거 (갱신용) resultBox.Text = ""; paramBox1.Enabled = true; paramBox2.Enabled = true; } string selected = listBox_getType.SelectedItem.ToString(); //클래스 선택 selectedTypeBox.Text = selected; //선택한 클래스 출력 //선택한 클래스의 Type 정보를 저장할 인스턴스 생성 getTypeClass = new GetTypeClass(selected); //생성한 인스턴스(getTypeClass)를 통해 attribute를 적용한 클래스의 메소드 이름들을 배열로 반환 MethodInfo[] selectedMethods = getTypeClass.selectMethod(); int len = selectedMethods.Length; if (selected == "Profile") //선택한 클래스에따라 파라미터 및 메소드 리스트의 라벨 값 생성 { param1.Text = "Player Name"; param2.Text = "Phone"; methodList.Text = "Methods of Profile"; } else if (selected == "Team") { param1.Text = "Team"; param2.Text = "Location"; methodList.Text = "Methods of Team"; } //selectedMethod에 저장된 메소드 이름들을 listBox_getMethod 목록에 하나씩 추가 for (int i = 0; i < len; i++) { listBox_getMethod.Items.Add(selectedMethods[i].Name); if (myButtons.Count > 0) { myButtons[i].Text = selectedMethods[i].Name.ToString(); } } }
private void listBox2_SelectedIndexChanged(object sender, EventArgs e) { textBox5.Text = listBox2.SelectedItem.ToString(); getTypeClass = new GetTypeClass(textBox5.Text); //Type 정보 얻기 }