Operandy typu Object używane w wyrażeniach dla instrukcji "Select", "Case"; błędy środowiska uruchomieniowego mogą wystąpić

Konstrukcja ... SelectCase używa co najmniej jednego wyrażenia typu danych obiektu.

Gdy zmienna lub wyrażenie zwróci wartość Object, kompilator musi wykonać opóźnione powiązanie, co powoduje dodatkowe operacje w czasie wykonywania. Uwidacznia również aplikację pod potencjalne błędy czasu wykonywania. Jeśli na przykład przypiszesz element Form do zmiennej Object , a następnie spróbujesz porównać ją z liczbą, środowisko uruchomieniowe zgłasza InvalidCastException błąd, ponieważ program Visual Basic nie może przekonwertować Form obiektu na wartość liczbową.

Wyrażenia w Selectkonstrukcji ...Case powinny być tego samego typu danych lub ściśle powiązanych typów danych, które można przekonwertować na siebie nawzajem. Jest to spowodowane tym, że każda Case instrukcja porównuje co najmniej jedną wartość z wyrażeniem testowym Select, na którym opiera się konstrukcja ...Case .

Domyślnie ten komunikat jest ostrzeżeniem. Aby uzyskać informacje na temat ukrywania ostrzeżeń lub traktowania ostrzeżeń jako błędów, zobacz Konfigurowanie ostrzeżeń w Visual Basic.

Identyfikator błędu: BC42036

Aby poprawić ten błąd

  • Jeśli to możliwe, rozmieść wszystkie wyrażenia, aby ocenić typy danych, dla których zdefiniowano operatory porównania.

Zobacz też