프로그래밍
[C#] 자바의 instance of 와 같은
tobee
2023. 3. 23. 19:28
728x90
자바의 경우 때때로 OO 의 경우에 인스턴스가 Object 넘어 온 인스턴스가 있을 수 있습니다.
이 때는 사실 어떤 오브젝트의 인스턴스인가를 알고 있다는 전제를 깔고 다음과 같이 인스턴스를 확인 할 수 있습니다.
다음은 해당 오브젝트가 String 클래스의 객체인가를 묻는 코드의 예 입니다:
if(someObject instanceof String)
...
C# 경우에는 어떻게 될까 하고 찾아 보았습니다.
Check if instance is of a type
Using this to check if c is an instance of TForm. c.GetType().Name.CompareTo("TForm") == 0 Is there a more type safe way to do it besides using a string as a param to CompareTo()?
stackoverflow.com
두가지가 있는 데요.
해당 인스턴스가 정확히 그 클래스의 객체 인지를 확인 하려고 하면,
if (c.GetType() == typeof(TForm))
라고 하면 되고, 해당 인스턴스가 어떤 클래스 류(부모 포함) 인가는 다음과 같이 하면 된다고 합니다.
if (c is TForm)
라고 하거나,
TForm form = c as TForm;
if (form != null)
로 하면 된다는 것입니다.
상황에 따라 맞게 쓰라고 하는 군요.

이상.
728x90