[source,vbnet] ---- Public NotInheritable Class NotNullAttribute ' The alternative name 'ValidatedNotNullAttribute' is also supported Inherits Attribute End Class Public Module Guard Public Sub CheckNotNull(Of T)( Value As T, Name As String) If Value Is Nothing Then Throw New ArgumentNullException(Name) End Sub End Module Public Module Utils Public Function Normalize(Value As String) As String CheckNotNull(Value, nameof(Value)) ' Will throw if 'Value' is Nothing Return Value.ToUpper() ' Compliant: value is known to be not Nothing here End Function End Module ----