Además de entrar en una versión beta de .NET ... que, aunque emocionante, es arriesgado y no responde realmente a su pregunta.
Por ahora, lamentablemente, lo mejor que puede hacer es agregar comentarios de Intellisense a su código que adviertan que no pase nulos.
/// <summary>
/// This Foo method does Bar to something.
/// </summary>
/// <param name="myRequiredString">required, do NOT pass nulls. I really really mean it!</param>
public void Foo(String myRequiredString)
{
if (myRequiredString == null)
{
throw new ArgumentNullException("myRequiredString", "It said required in the name of the argument, dummy!");
}
}
hay algunas hackish solutions por ahí donde la gente ha implementado una estructura NonNullable genérico, pero el fondo es lo que queremos es que el Visual Studio para no dejar de escribir "Foo (nulo)" y para advertir si haces o te da algún error de compilación, y el hecho es que para el 99.99% de las llamadas a métodos donde algo no debe ser anulable, vas a tener que hacer == comprobación nula y lanzar una excepción ArgumentNullException de todas maneras, porque No sé que el argumento es nulo hasta el tiempo de ejecución. Incluso si hubiera lo que buscas en C# como mínimo, el compilador tendrá que agregar el cheque nulo y arrojar ArgumentNullException allí.
Supongo que lo que estás buscando es "azúcar sintáctica" para ahorrar un poco de movimiento a tus dedos. Por ahora, si estás cansado de tipear, te recomendaría crear un Fragmento de código.
Esto también se implementa en C# 4.0, en Visual Studio 2010 beta 1. –
¿En qué se diferencia DBC de su método si el argumento es nulo o no, y lanza una ArgumentNullException f.i. cuando el argumento es nulo? –
Funcionalmente, no es realmente.Sintácticamente, sin embargo, hace que la intención sea clara desde la interfaz externa del método al decorarla con un atributo apropiado. –