<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0120</ErrorName>
  <Examples>
    <string>// CS0120: An object reference is required to access non-static member `TestNamespace.TestClass.HelloWorld()'
// Line: 31

using System;
using TestNamespace;

namespace TestNamespace
{
	public class TestClass
	{
		public void HelloWorld ()
		{
		}
	}
}

class SuperClass
{
	TestClass tc = null;

	TestClass TestClass
	{
		get { return tc; }
	}
}

class SubClass : SuperClass
{
	public SubClass ()
	{
		TestClass.HelloWorld ();
	}
}

class App
{
	public static void Main ()
	{
		SubClass sc = new SubClass ();
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `Program.x'
// Line: 6

class Program {
	int x;
	const int y = x;
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `Foo.Bar()'
// Line: 22

using System;

public class Foo
{
	public string Bar ()
	{
		return "hello";
	}
	public static string Bar (string thing)
	{
		return string.Format ("hello {0}", thing);
	}
}

public class MainClass
{
	public static void Main ()
	{
		Console.WriteLine (Foo.Bar ());
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `C.Test(string)'
// Line: 8

class C
{
	static void Test (int i)
	{
		Test ("a");
	}
	
	void Test (string s)
	{
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `C.i'
// Line: 16

class B
{
	public B (object o)
	{
	}
}

class C : B
{
	int i;
	
	public C ()
		: base (i)
	{
	}
}

</string>
    <string>// CS0120: An object reference is required to access non-static member `MainClass.Test'
// Line: 20

public class Test
{
	public void Foo ()
	{
	}
}

public class MainClass
{
	public Test Test
	{
		get;
		set;
	}

	public static void Main (string[] args)
	{
		Test.Foo ();
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `App.Test'
// Line: 15

class App
{
	Test a = new Test ();

	public Test Test
	{
		get { return a; }
	}

	public static void Main (string[] args)
	{
		Test.Run ();
	}
}

class Test
{
	public void Run () { }
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `B.M()'
// Line: 16

using System;

class A
{
	protected A (Action a)
	{
	}
}

class B : A
{
	public B ()
		: base (M)
	{
	}
	
	void M ()
	{
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `Derived.Foo()'
// Line: 16

using System;

public class Base
{
	public Base (Action a)
	{
	}
}

public class Derived : Base
{
	public Derived ()
		: base (() =&gt; Foo ())
	{
	}

	void Foo ()
	{
	}
}</string>
    <string>// CS0120: An object reference is required to access non-static member `MainClass.Callback()'
// Line: 9

using System;

class MainClass : BaseClass
{
	public MainClass (string a, Action callback)
		: base (a, () =&gt; Callback ())
	{
	}

	private void Callback ()
	{
	}
}

public class BaseClass
{
	public BaseClass (string a, int b)
	{
	}

	public BaseClass (string a, Action callback)
	{
	}
}</string>
    <string>// CS0120: An object reference is required to access non-static member `Test.Add8(int)'
// Line: 12

using System;
using System.Threading;
using System.Reflection;
using System.Reflection.Emit;

public class Test {

        public Test () : this (Add8(4), 6) {
                string hostName = System.Net.Dns.GetHostName ();
                Console.WriteLine ("Hostname: " + hostName);
        }

        public Test (int i, int j) {
                Console.WriteLine ("GOT : " + i + " : " + j);
        }


        public static void Main (String[] args) {
                Test t = new Test ();
        }

        private int Add8 (int i) {
                return i + 8;
        }

}
</string>
    <string>// CS0120: An object reference is required to access non-static member `X.method()'
// Line: 11

class X {

	void method ()
	{
	}
       
	public static int Main (string [] args){
		X.method ();
		return 1;
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `X.Y'
// Line: 11

using System;

class X {
	// Public properties and variables.
	public string Y;

	// Constructors.
	public X()
	{
	}

	// Public static methods.
	public static void Main(string[] Arguments)
	{
		X.Y = "";
	}
}






</string>
    <string>// CS0120: An object reference is required to access non-static member `Babble.Protocol.Auth.Account'
// Line: 28

using System;

namespace Babble.Protocol
{
	public class Query
	{
		public Query(Account a)
		{
		}
	}

	public class Account
	{
	}
	
	public class Auth
	{
		public Account Account
		{
			get { return null; }
		}
		
		private class AuthQuery : Query
		{
			public AuthQuery() : base(Account)
			{
			}
		}
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `MemRefMonoBug.Int32'
// Line: 11

using System;

public class MemRefMonoBug {
	private int Int32;	// this member has the same name as System.Int32 class
	public static void Main ()
	{
		new MemRefMonoBug ().Int32 = 0;	// this line causes no problem
		Int32 = 0;	// mcs crashes in this line
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `MemRefMonoBug.String'
// Line: 11

using System;

public class MemRefMonoBug {
	private string String;	// this member has the same name as System.String class
	public static void Main ()
	{
		new MemRefMonoBug ().String = "";	// this line causes no problem
		String = "";	// mcs crashes in this line
	}
}

</string>
    <string>// CS0120: An object reference is required to access non-static member `Test.ArrayList'
// Line: 10

using System.Collections;

public class Test  {
	ArrayList ArrayList;

	public static void Main () {
		ArrayList.Capacity = 5;
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `X.Y(System.Text.StringBuilder)'
// Line: 8

using System.Text;

class X {
	static void Main () {
		X.Y(null);	
	}
	
	void Y(StringBuilder someParam) {
	}
}
</string>
    <string>// CS0120: An object reference is required to access non-static member `test.method()'
// Line: 11

class test {

	void method ()
	{
	}
       
	public static int Main (string [] args){
		method ();
		return 1;
	}
}
</string>
  </Examples>
</ErrorDocumentation>