カモノハシを検索するときに、ユーザーがカモノハシの ID または名前 (または名前の一部) を入力できるようにしたいと考えています。
データベースが現在ダウンしているため、このコードをテストすることはできませんが、kvp に 2 回割り当てているという事実は正しくないようです。とにかく、最初に私のコード:
String SearchVal = textBoxPlatypusNumOrPartialName.Text.Trim();
int PlatypusID;
int.TryParse(SearchVal, out PlatypusID);
Dictionary<int, string> CandidatePlatypusDict = PlatypusID > 0 ? PlatypusSetupData.GetPlatypusById(PlatypusID) : PlatypusSetupData.GetCandidatePlatypusFromName(SearchVal);
KeyValuePair<int, String> kvp = new KeyValuePair<int, string>();
using (var getPlatypusIDAndNameDlg = new GetPlatypusForm(CandidatePlatypusDict)) {
DialogResult dr = getPlatypusIDAndNameDlg.ShowDialog();
if (dr == DialogResult.OK) {
kvp = getPlatypusIDAndNameDlg.PlatypusKVP;
}
}
...今、代わりにこれを試してみると:
KeyValuePair<int, String> kvp; // = new KeyValuePair<int, string>();
「割り当てられていないローカル変数 'kvp' の使用」
また、null 非許容型であるため、null を KeyValuePair として割り当てることはできません。
この kvp のインスタンス化とその後の割り当ては問題ありませんか? そうでない場合は、どうすれば回避できますか?