title: Using [NotNull] for a method's parameters
body: <p>Consider <a href="https://github.com/aspnet/Mvc/blob/master/src/Microsoft.AspNet.Mvc.Core/Builder/MvcApplicationBuilderExtensions.cs#L57" rel="noreferrer">this code</a> from ASP.NET MVC's source code:</p>
  
  <pre><code>public static IApplicationBuilder UseMvc(
              [NotNull] this IApplicationBuilder app,
              [NotNull] Action&lt;IRouteBuilder&gt; configureRoutes) {...}
  </code></pre>
  
  <p>According to <a href="https://stackoverflow.com/a/32528271/1646540">this</a> answer, the annotated parameters must not be null. Then why can I pass null to the method?  That is, in the case below, why doesn't the compiler give me any error?</p>
  
  <pre><code>app.UseMvc(null);
  </code></pre>