program tip

개체가 형식이 아닌지 확인 (! = "IS"에 해당)-C #

radiobox 2020. 11. 23. 07:57
반응형

개체가 형식이 아닌지 확인 (! = "IS"에 해당)-C #


이것은 잘 작동합니다.

    protected void txtTest_Load(object sender, EventArgs e)
    {
        if (sender is TextBox) {...}

    }

보낸 사람이 TextBox가 아닌지 확인하는 방법이 있습니까? "is"에 대한! =과 같은 종류입니까?

논리를 ELSE {}로 이동하지 마십시오. :)


이것은 한 가지 방법입니다.

if (!(sender is TextBox)) {...}

is키워드 앞에 더 장황한 "오래된"방법을 사용할 수 없습니까?

if (sender.GetType() != typeof(TextBox)) { // ... }

잘 알려진 두 가지 방법은 다음과 같습니다.

1) IS 연산자 사용 :

if (!(sender is TextBox)) {...}

2) AS 연산자 사용 (textBox 인스턴스로 작업해야하는 경우 유용함) :

var textBox = sender as TextBox;  
if (sender == null) {...}

다음과 같은 상속을 사용하는 경우 :

public class BaseClass
{}
public class Foo : BaseClass
{}
public class Bar : BaseClass
{}

... Null 내성

if (obj?.GetType().BaseType != typeof(Bar)) { // ... }

또는

if (!(sender is Foo)) { //... }

이 시도.

var cont= textboxobject as Control;
if(cont.GetType().Name=="TextBox")
{
   MessageBox.show("textboxobject is a textbox");
} 

참고 URL : https://stackoverflow.com/questions/529944/check-if-object-is-not-of-type-equivalent-for-is-c-sharp

반응형