この関数では:
public List<T> getX<T>(SPListItemCollection itemCollection, List<T> itemList, Report RO, WebpartSettings WPS, bool isFolder)
{
foreach (SPListItem item in itemCollection)
{
if (have_permissions_for_item(WPS.EDIT_MODE, item, RO))
{
itemList.Add(isFolder ? (T)item.Folder : (T)item);
}
}
return itemList;
}
これはパラメトリック ポリモーフィズムを使用しており、取得しitemcollection
て参照し、適切なアクセス許可である場合はリストに追加してから、リストを返します。返されるリストは typeであるため、タイプまたは私のコードに基づいてT
いる可能性があります。SPFolder
SPListItem
for ループ内の項目は既に typeSPListItem
であり、型の場合T
は、項目のメソッドSPFolder
を呼び出す必要があります。.Folder
これを検出することはできないため、ヘルパー変数を使用して使用する必要があるかどうかを判断する必要がありました。
しかし、問題は、これを行っても type にキャストしようとするとエラーが発生することT
です。
T
メソッドSPFolder
を呼び出すときになり、それ以外の場合は型になります。.Folder
T
SPListItem
誰かがこれの修正を見ていますか?
ありがとう。