かなり短く簡単な質問です。C++/CLI優れたコーディング慣行、インデックス付きプロパティif-checkまたはtry..catch?
のは、コードのこの部分を使用してみましょう:
public ref class Foo
{
private:
System::Collections::Generic::Dictionary<System::String ^,System::String ^>^aDictionary;
public:
property System::String^SomeIndexedProperty[System::String ^]
{
public: System::String^get(System::String^index)
{
return aDictionary[index];
}
}
public:
Foo(void)
{
aDictionary = gcnew System::Collections::Generic::Dictionary<System::String ^,System::String ^>();
}
};
if(aDictionary->ContainsKey(index))
(if文で/事前チェックのリターンを囲むように良いだろうか、試してみるとreturn文を囲むように良いだろう。 .catchブロック?彼らは失敗したときに、両方のケースで
はnullptrを返す。
スピードは本当に問題のではありません。しかし、単に一般的な十分であろう「これがその理由のために優れている」。
nullptrを返すことは、大部分のケースでは間違ったことです。 HasValue()メソッドを追加して、値が存在しないことをクライアントコードが検出できるようにします。値が常に存在するように使用方法が指示している場合は、クライアントプログラマがバグを簡単に修正できるように何もしないでください。 –