|
|
@@ -0,0 +1,179 @@
|
|
|
+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);
|
|
|
+ }
|