namespace WindowsApplicationProve { namespace Cxxx { [Serializable] public struct OtherStruct { public int FInt; } [Serializable] public struct StructSample { public int FInt; public char FChar; public object FObj; } [Serializable] public enum EnumSample { aa, bb, cc } [Serializable] public delegate int DelegateProve(int i); [Serializable] public delegate void OtherDelegate(); public interface ISample { int FirstMethod(char charParam); } [Serializable] public class cIntProve: ISample { public long FLongField; public int FirstMethod(char charParam) { return 6; } } public delegate string DlgProve(int i); [Serializable] public class cAgregationClass:BaseClass { public Char FCharField; public string FStr; public cSerializableProve Fobj; public ISample Fintf; //public int[][] FIntList; public string DlgCatcher(int i) { return "Hello"; } } [Serializable] public class BaseClass { public int FBaseint; public cIntProve FIntObj; } [Serializable] public class cXXX { public int FI; } [Serializable] public class cSerializableProve { public object[] FArrayProve; public object[] FNullArray; //public ClassProve FOtherAssObj; public cAgregationClass FAggField; //value types public DelegateProve FDelegateProve; public event OtherDelegate FEventField; public ISample FInterfaceField; public string FStrField; private int FPintField; public int FIntField; public uint FUintField; public short FShortField; public ushort FUShortField; public long FLongField; public ulong FULongField; public bool FBoolField; public double FDoubleField; public decimal FDecimalField; public char FCharField; public StructSample FStructField; public EnumSample FEnumField; public cSerializableProve() { InitReferences(); InitSimpleTypes(); InitStructs(); InitArray(); } private void InitReferences() { FAggField = new cAgregationClass(); FAggField.FCharField = 'a'; FAggField.FBaseint = 10; FAggField.Fobj= this; FAggField.FStr= "Hhhh"; FStrField= FAggField.FStr; FAggField.FIntObj= new cIntProve (); FInterfaceField= FAggField.FIntObj; FAggField.Fintf= FInterfaceField; } private void InitSimpleTypes() { FArrayProve= new Object[20]; FPintField= 10; FIntField = 6; FUintField = 6; FShortField = 6; FUShortField = 6; FLongField = 6; FULongField = 6; FDoubleField = 6; FDecimalField = 5; FBoolField = true; FCharField = 'a'; FEnumField = EnumSample.aa; } private void InitStructs() { FStructField= new StructSample(); FStructField.FChar= 'a'; FStructField.FInt= 10; FStructField.FObj= this.FAggField; } private void InitArray() { FArrayProve[0]= new cAgregationClass(); ((cAgregationClass)FArrayProve[0]).FStr= "Hello"; FArrayProve[1]= new cAgregationClass[2]; ((cAgregationClass[])FArrayProve[1])[0]= this.FAggField; FArrayProve[2]= new int[][][]{new int[][]{new int[3], new int[3], new int[3]}, new int[][]{new int[3], new int[3], new int[3]}}; /*Fill the integer array*/ ((int[][][])FArrayProve[2])[1][1][1]= 10; ((int[][][])FArrayProve[2])[1][1][2]= 10; ((int[][][])FArrayProve[2])[1][1][0]= 10; FArrayProve[3]= new OtherStruct(); FArrayProve[4]= 6; FArrayProve[5]= true; FArrayProve[6]= 2.5; FArrayProve[7]= EnumSample.bb; FArrayProve[8]= this.FInterfaceField; FArrayProve[9]= "Hello"; FArrayProve[10]= new UInt32(); FArrayProve[11]= new short(); FArrayProve[12]= new UInt16(); FArrayProve[13]= new decimal(); FArrayProve[15]= new ulong(); FArrayProve[16]= new char(); FArrayProve[18]= null; } public void InitDelegates() { FDelegateProve= new DelegateProve(SIntProve); FEventField= new OtherDelegate(OtherProve); }