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);
        }
}
}
