:keyword_null: Nothing :keyword_async: Async :concept_method: procedure :typeparameter_TResult: (Of TResult) == Why is this an issue? include::../why-dotnet.adoc[] [source,vbnet] ---- Public Function DoFooAsync() As Task Return Nothing ' Noncompliant: Causes a NullReferenceException if awaited. End Function Public Async Function Main() As Task Await DoFooAsync() ' NullReferenceException End Function ---- == How to fix it include::../how-to-fix-it-dotnet.adoc[] === Code examples A `Task` returning {concept_method} can be fixed like so: ==== Noncompliant code example [source,vbnet,diff-id=1,diff-type=noncompliant] ---- Public Function DoFooAsync() As Task Return Nothing ' Noncompliant: Causes a NullReferenceException if awaited. End Function ---- ==== Compliant solution [source,vbnet,diff-id=1,diff-type=compliant] ---- Public Function DoFooAsync() As Task Return Task.CompletedTask ' Compliant: Method can be awaited. End Function ---- A `Task{typeparameter_TResult}` returning {concept_method} can be fixed like so: ==== Noncompliant code example [source,vbnet,diff-id=2,diff-type=noncompliant] ---- Public Function GetFooAsync() As Task(Of Object) Return Nothing ' Noncompliant: Causes a NullReferenceException if awaited. End Function ---- ==== Compliant solution [source,vbnet,diff-id=2,diff-type=compliant] ---- Public Function GetFooAsync() As Task(Of Object) Return Task.FromResult(Of Object)(Nothing) ' Compliant: Method can be awaited. End Function ---- include::../resources.adoc[] include::../rspecator.adoc[]