title: C# Async Task Method Without Await or Return
body: <p>I have an Interface I that is implemented in two places like:</p>
  
  <pre><code>interface I 
  { 
     Task DoSomething();
  }
  </code></pre>
  
  <p>The interface has async Task DoSomething method API that is then implemented in class A like:</p>
  
  <pre><code>class A : I {....}
  
  class B : I {....}
  </code></pre>
  
  <p>In class A, the implementation of DoSomething is like below and that is OK:</p>
  
  <pre><code>public async Task DoSomething()
  {
      if (...)
      {
          await DoIt();
      }
  }
  </code></pre>
  
  <p>However, in class B, the implementation of DoSomething() should not do anything. 
   So, its implementation looks like this:</p>
  
  <pre><code>public async Task DoSomething()
  {
      // nothing
  }
  </code></pre>
  
  <p>This compiles but I am not sure how correct it is do do something like this beside the fact that the method is useless.  </p>
  
  <p>But being "useless" in this case is ok in this case since it is implemented just because it is required by class B implementing the interface I.</p>
  
  <p>I wonder if this is a correct way to implement a method that returns async Task but has no await or return?  I know that this method will simple do nothing and execute synchronously as there is no call to await.</p>
  
  <p>UPDATE: Similar questions have been asked here on SO and I have checked all of them before asking this one.  None is asking what I am asking though</p>