class X : Y {
   bool Method(int argument_1, int argument_2)
   {
      #region something
      int foo = 0;
      #endregion

      if (argument_1 == argument_2)
      {
         throw new Exception(Locale.GetText("They are equal!"));
      }

      if (argument_1 < argument_2)
      {
         if (argument_1 * 3 > 4)
         {
            return(true);
         }
         else
         {
            return(false);
         }
      }

//
// This sample helps keep your sanity while using 8-spaces for tabs
//
      VeryLongIdentifierWhichTakesManyArguments(
         Argument1,
         Argument2, Argument3,
         NestedCallHere(
            MoreNested));
   }

   bool MyProperty {
      get { return(x); }

      set { x = value; }
   }

   void AnotherMethod()
   {
      Logger log = new Logger();

      log.foo.bar    = 5;
      log.narf.sweat = "cat";

      if ((a + 5) != 4)
      {
      }

      while (blah)
      {
         if (a)
         {
            continue;
         }
         b++;
      }
   }
}

object lockA;
object lockB;

void Foo()
{
   lock (lockA) {
      lock (lockB) {
      }
   }
}

void Bar()
{
   lock (lockB) {
      lock (lockA) {
      }
   }
}


// class library
class Blah {
   Hashtable ht;
   void Foo(int zzz, Entry blah)
   {
      lock (ht) {
         ht.Add(zzz, blah);
      }
   }

   void Bar()
   {
      lock (ht) {
         foreach (Entry e in ht)
         {
            EachBar(e);
         }
      }
   }

   virtual void EachBar(Entry e)
   {
   }
}

// User
class MyBlah {
   byte[] box = new byte[6];

   box[2] = 56;

   void DoStuff()
   {
      lock (this) {
         int   i = GetNumber();
         Entry e = GetEntry();

         Foo(i, e);
      }
   }

   override void EachBar(Entry e)
   {
      lock (this) {
         DoSomething(e);
      }
   }
}

