Compartilhar via


Validando argumentos

As diretrizes a seguir ajudam a garantir que você validar argumentos corretamente.

Valide argumentos passados para os membros do públicos, protegidos ou implementados explicitamente.Jogar sistema.ArgumentException ou uma de suas classes derivadas, se a validação falhar.

Essa diretriz não requer que o código de validação esteja no membro publicamente visível. É aceitável para passar argumentos para um método interno que manipula a validação.

Lança sistema.ArgumentNullException se um argumento nulo é transmitido, mas o membro não suporta argumentos null (Nothing no Visual Basic).

Valida parâmetros de enumeração.

Você não pode presumir que os argumentos de enumeração são valores definidos na enumeração porque o Common linguagem tempo de execução (CLR) oferece suporte a projeção de qualquer valor inteiro com um valor de enumeração independentemente de se o valor está definido na enumeração.

Não use sistema.Enum.IsDefined(sistema.Type,sistema.objeto) para verificações de intervalo de enumeração sistema autônomo ele se baseia no tipo de tempo de execução de enumeração, que pode alterar de uma versão para outra.

Uma versão posterior de uma biblioteca pode adicionar valores a uma enumeração de remessa. Usando IsDefined dados de validação pode ser perigosa porque o código existente (que não identificou o novo valor) tratará o novo valor sistema autônomo a entrada válida porque IsDefined Retorna true para o novo valor. Verifique se a entrada está no intervalo de valores de seu programa pode oferecer suporte e lançar uma exceção se não for.

Lembre mutáveis argumentos passados podem ter alterado depois que eles foram validados.

Se o membro é sensível à segurança, faça uma cópia particular do objeto mutável e usar a cópia para validação e processamento. Isso se aplica somente a dados mutáveis. Dados imutáveis, sistema autônomo Uri objetos, não necessário a serem copiados.

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Design de parâmetro

Outros recursos

Diretrizes de design de membro

Diretrizes de Design para desenvolvimento bibliotecas de classe