내 머리가 오늘 아침에 작동하지 않으므로 다른 사람이 나에게 이것을 정리해주기를 바랍니다.IList <string>이 IEnumerable 매개 변수에 전달되었습니다.
IEnumerable이 null인지 항목이 없는지 확인하는 약간의 도우미 메서드가 있습니다. 나는 예외를 얻을 ThrowIfNullOrEmpty 방법을 사용하여 특성에 유효성을 검사 할 때
public static class ParameterGuard
{
public static void ThrowIfNullOrEmtpy<T>(T enumerable, string argName) where T : IEnumerable
{
if (enumerable == null)
throw new ArgumentNullException(argName);
if (enumerable.HasCountOf(0))
throw new ArgumentException(Resources.ExceptionEnumerableEmpty, argName);
}
public static void ThrowIfNullOrEmpty(string arg, string argName)
{
if (arg == null)
throw new ArgumentNullException(argName);
if (arg.Length == 0)
throw new ArgumentException(Resources.ExceptionStringEmpty, argName);
}
}
는 또한 전자 메일 보내기
public class EmailOptions
{
public string Server { get; set; }
public int Port { get; set; }
public string From { get; set; }
public List<string> To { get; set; }
public List<string> Cc { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public bool IsHtml { get; set; }
}
에 대한 작은 데이터 구조를 가지고있다.
private MailMessage CreateEmail(EmailOptions options)
{
ParameterGuard.ThrowIfNullOrEmpty(options.To, "To");
...
}
예외 내가 생각했던 것
The best overloaded method match for
ParameterGuard.ThrowIfNullOrEmpty(string, string)' has some invalid arguments
IList<> 클래스가이 일 것이라고는 IEnumerable 구현으로 그.
나는이 문제를 해결해 주셔서 감사합니다. 대신 당신이 예전처럼 당신에게, 정상적인 방법을 일반적인 방법을 사용
코드 복사/붙여 넣기의 경우 첫 번째 함수의 이름이 'ThrowIfNullOrEmtpy'이며 ThrowIfNullOrEmpty가 아니기 때문일 수 있습니다. – SWeko
정말입니까? 우리는 문제를 재현 할 수 없다. –
@SWeko; 네가 옳아. 오타입니다. 이 질문에 대한 답변을 작성 하시겠습니까? –