c# is 연산자로 비주얼 컨트롤 검색하기
아래 예제는 폼에 있는 비주얼 컨트롤들 가운데 TextBox들만 처리하는 거다.
for (int i = 0; i < Controls.Count; i++) { if (Controls[i] is TextBox) { Controls[i].Text = "abcde"; } }
is는 형 변환을 할 수 있는지 확인하는 연산자다. Controls는 Control의 컬렉션이다. 즉 Control을 TextBox로 타입캐스트할 수 있느냐를 묻는 거다. 아래의 코드는 오류로 처리된다.
if (Controls[i] == TextBox)
Controls에 담겨 있는 건 인스턴스이고 TextBox는 클래스 자체이기 때문이다. 이렇게는 가능하다.
if (Controls[i].GetType() == typeof(TextBox))