using System;
using System.Reflection;

public class Test
{
	public string Property1 { get; }

	public int Property2 { get; }

	public static int Main ()
	{
		var t = new Test ();
		if (t.Property1 != null)
			return 1;

		if (t.Property2 != 0)
			return 2;

		var fields = typeof (Test).GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
		if (fields.Length != 2)
			return 3;

		foreach (var fi in fields) {
			if ((fi.Attributes & FieldAttributes.InitOnly) == 0)
				return 4;
		}

		return 0;
	}	
}