List<DynamicBusinessObject> dbo = SearchController.Instance.GetSearchResultList(search, null, "date", startRow - 1, ucDataPager1.PageSize, state);
上記のコード行は、これまで 5 つの引数を持っていた GetSearchResultList メソッドを呼び出しています。
6 番目の引数を追加しましたが、この関数を呼び出す他のすべてのページをまだ更新する必要がないように、この引数をオプションにしたかったのです。
そこで、関数を次のように変更しました。
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public List<DynamicBusinessObject> GetSearchResultList(Search search, List<CategoryAttribute> listCatAttrib, string sortBy, int startRow, int pageSize, [Optional, DefaultParameterValue("")] string state)
{
StorageQuery qry = new QrySearchResult(
search.ID,
(listCatAttrib != null && listCatAttrib.Count > 0) ? listCatAttrib[0].Attribute.ID : -1,
(listCatAttrib != null && listCatAttrib.Count > 1) ? listCatAttrib[1].Attribute.ID : -1,
(listCatAttrib != null && listCatAttrib.Count > 2) ? listCatAttrib[2].Attribute.ID : -1,
1, sortBy, startRow, pageSize, state);
List<DynamicBusinessObject> list = BusinessObject.Search(qry);
return list;
}
ただし、ビルドしようとすると、GetSearchResultList にオーバーロード メソッドがなく、5 つの引数を取るというエラーが表示されます。[Optional] を使用する代わりに、 string state = "" も試しました
6番目の引数がオプションである場合、呼び出しを行うときに6つの引数を渡さないことに不平を言う理由を誰かが知っていますか?