Laden...

Der Typ "bool?" kann nicht implizit in "bool" konvertiert werden

Erstellt von Byteteufel vor 13 Jahren Letzter Beitrag vor 13 Jahren 10.138 Views
B
Byteteufel Themenstarter:in
35 Beiträge seit 2010
vor 13 Jahren
Der Typ "bool?" kann nicht implizit in "bool" konvertiert werden

Moinsen zusammen,

wenn ich eine Abfrage auf ein IsChecked mache, bekomme ich die Meldung:

Der Typ "bool?" kann nicht implizit in "bool" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)"

WPF Checkbox:


            if (chbLinks.IsChecked)
            {
                Seite.Links = true;
            }

Ähnliche Meldungen bekomme ich auch manchmal bei anderen Typen angezeigt.

Gruß

Axel

C
2.121 Beiträge seit 2010
vor 13 Jahren

bool? darf auch null sein, deswegen hast du diese Meldung. Schau dir mal den ?? Operator an (ich glaub der geht so), mit dem kannst du sowas auflösen.

C
24 Beiträge seit 2009
vor 13 Jahren

Ergänzend zu Chilics Beitrag kann man noch folgenden Link erwähnen:

How to: Safely Cast from bool? to bool (C# Programming Guide)

1.130 Beiträge seit 2007
vor 13 Jahren

mach mal n punkt ... hinter chbLinks.IsChecked und guck dir an, was intellisense sagt.
da müsste eine geigenschaft namens Value sein.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

2.223 Beiträge seit 2005
vor 13 Jahren

Hallo Byteteufel,

Value bringt nicht wirklich viel, wenn isChecked = null ist bekommst du eine Exception

byte? ist nullable Typ, dass heißt, das der bool typ nicht nur true oder false enthalten kann, sondern auch null.

und if (null) klappt nicht.

Du könntest es mit


if (chbLinks.IsChecked ?? false)

Viele Grüße
Lars

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Byteteufel,

siehe auch [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).

herbivore