public new string Request()
 {
     if (_subject == null)
     {
         return("Protection Proxy: Authenticate first");
     }
     else
     {
         return("Protection Proxy: Call to " + _subject.Request());
     }
 }
 public string Request()
 {
     // A virtual proxy creates the object only on its first method call
     if (_subject == null)
     {
         Console.WriteLine("Subject inactive");
         _subject = new Subject();
     }
     Console.WriteLine("Subject active");
     return("Proxy: Call to " + _subject.Request());
 }