title: Meaning of extending a class with " : base(typeof(classname))" (C#)
body: <p>I have read this</p>
  <p><a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/base" rel="nofollow noreferrer">https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/base</a>.</p>
  <p>but I still don't understand what this line means.</p>
  <pre><code>public CustomAuthorizeAttribute(string role) : base(typeof(CustomAuthorize))
  </code></pre>
  <p>CustomAuthorize is a class that extends <code>IAuthorizationFilter</code>.</p>
  <p>what does <code>base(typeof(CustomAuthorize))</code> mean?</p>
  <p>Is it trying to call the constructor of the <code>IAuthorizationFilter</code>?  why is it using <code>typeof</code> ?</p>
  <p>The full class is:</p>
  <pre><code>public class CustomAuthorizeAttribute : TypeFilterAttribute
   {
          public CustomAuthorizeAttribute(string role) : base(typeof(CustomAuthorize))
         {
              Arguments = new object[] { role };
         }
   }
  
  public class CustomAuthorize : IAuthorizationFilter
      {
          private readonly string role;
  
          public CustomAuthorize(string role)
          {
              this.role = role;
          }
  
          public void OnAuthorization(AuthorizationFilterContext context)
          {
           Some code
  </code></pre>
  <p>The question differs from other similar questions as i want to know specifically what &quot;base(typeof(CustomAuthorize))&quot; means.</p>