Можно ли дать частям параметра Func<T1, T2,....> xml комментарии для intellisense?

Итак, у меня есть действие, которое принимает обратный вызов и выполняет его. Это выглядит немного так. Могу ли я что-нибудь заполнить в области вопросительного знака (или в другом месте), чтобы документировать детали аргументов, входящих в параметр APICall Func?

/// <summary>
/// Opens Authenticated session to servers using ClientSide SDK's, performs action, closes session
/// </summary>
/// <typeparam name="T">The object to be returned from the authenticated action</typeparam>
/// <param name="credentials">Container for username, password</param>
/// <param name="APICall">?????????????????</param>
///
/// ?????????????????????
/// ?????????????????????
/// ?????????????????????
///    
/// <returns>T</returns>
private static T MakeAuthenticatedCall<T> (CredStorage Credentials, Func<string,T> APICALL)
{
   AuthenticationManager.Login(Credentials);
   T APIResult = APICall(AuthenticationManager.SessionID);
   AuthenticationManager.LogOff();

   return APIResult;
}

1 ответ

Решение

Вы можете определить свой собственный делегат, чтобы сделать это, а не использовать встроенный Func<T,...> делегировать.

Тогда вы можете не только дать ему документацию XML, но и дать более понятное имя параметрам.

Например:

/// <summary>Makes an API call.</summary>
/// <typeparam name="T">The type returned by the API call.</typeparam>
/// <param name="param">The parameter passed to the API call.</param>
/// <returns>The value returned by the API call.</returns>

public delegate T ApiCall<T>(string param);

Тогда вы бы использовали это вместо Func<string,T> в вашем методе:

private static T MakeAuthenticatedCall<T>(CredStorage Credentials, ApiCall<T> APICALL)
{

Возможно, это гораздо лучший способ сделать это, хотя за счет необходимости тратить дополнительное время на определение специального делегата.

Другие вопросы по тегам