2

Windows.Foundation.Collections eine Sammlung PropertySet genannt hat, die nach MSDN einen lookup Methode hat die zurückgibt:UWP: PropertySet lookup löst eine Ausnahme

der Wert ist, wenn ein Element mit dem angegebenen Schlüssel vorhanden ist; sonst, null.

Wenn ich den folgenden Versuch erhalte ich eine (unerwartete) Ausnahme:

try 
{ 
    auto propertySet = ref new Windows::Foundation::Collections::PropertySet(); 
    auto something = propertySet->Lookup("nothing"); 
    if (something != nullptr) 
    { 
     // Something was found :| 
    } 
    else 
    { 
     // Found nothing :) 
    } 
}catch(Platform::Exception^ e) 
{ 
    //Exception: e->Message 
} 

und e->Message ist:

Die Betriebsdaten außerhalb des gültigen Bereichs zuzugreifen versucht

Ich konnte nichts in MSDN zu diesem Problem finden.

Mache ich hier etwas falsch, oder ist dies ein Microsoft Bug \ falsche Dokumentation?

EDIT:

1- Ich verwende Windows 10 mit SDK Version 10.0.10240.0

2- Ich bin mit C++/CX, nicht C# (wenn diese nicht klar ist)

+0

Kann C# -Sprache nicht für Lookup unterstützt werden? Verwenden Sie [TryGetValue] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.foundation.collections.propertyset.trygetvalue.aspx), das unterstützt wird –

Antwort

4

Die Dokumentation ist nicht korrekt. Ich werde darum bitten, dass es behoben wird. Wenn der Schlüssel nicht existiert, löst Lookup einen Platform::OutOfBoundsException (intern: E_BOUNDS) aus. Verwenden Sie die Methode HasKey, um zu überprüfen, ob ein Schlüssel vorhanden ist.

+0

danke. Ich habe noch keine Antwort gegeben, da ich mir noch nicht sicher bin. – ZivS