Unforutnately no hay manera integrada en C#
Se puede documentar este hecho, pero esto no se comprobará automáticamente.
Si está utilizando el reafilamiento, se puede configurar para comprobarlo correctamente cuando el método está marcado con un atributo [NotNull].
De lo contrario, puede utilizar la biblioteca Microsoft Contracts y agregar algo similar a lo siguiente a su método, pero esto es bastante verborrea adicional para una anotación tan simple.
Contract.Ensures(Contract.Result<string>() != null)
SpeC# resolvió este problema al permitir a! después del tipo para marcarlo como un tipo no nulo, por ejemplo
string! foo
pero SpeC# sólo puede ser utilizado para orientar .NET2, y ha sido usurpada por el Código contratos biblioteca.
Además, no hay manera de saber si podría devolver un objeto que no sea nulo en primer lugar (a menos que sea una estructura) ¿Quizás quiera devolver una estructura? – Trap