本文整理汇总了C#中SimpleStruct.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# SimpleStruct.GetType方法的具体用法?C# SimpleStruct.GetType怎么用?C# SimpleStruct.GetType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimpleStruct
的用法示例。
在下文中一共展示了SimpleStruct.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: test_0_structure_to_ptr
public static int test_0_structure_to_ptr () {
SimpleStruct ss = new SimpleStruct ();
int size = Marshal.SizeOf (typeof (SimpleStruct));
//if (size != 52)
//return 1;
IntPtr p = Marshal.AllocHGlobal (size);
ss.a = 1;
ss.bool1 = true;
ss.bool2 = false;
ss.b = 2;
ss.a1 = new short [2];
ss.a1 [0] = 6;
ss.a1 [1] = 5;
ss.s1 = "abcd";
ss.emb1 = new SimpleStruct2 ();
ss.emb1.a = 3;
ss.emb1.b = 4;
ss.emb2 = new SimpleObj ();
ss.emb2.a = 10;
ss.emb2.b = 11;
ss.s2 = "just a test";
ss.x = 1.5;
ss.a2 = new char [2];
ss.a2 [0] = 'a';
ss.a2 [1] = 'b';
Marshal.StructureToPtr (ss, p, false);
Type t = ss.GetType ();
if (Marshal.ReadInt32 (p, (int)Marshal.OffsetOf (t, "a")) != 1)
return 1;
if (Marshal.ReadInt32 (p, (int)Marshal.OffsetOf (t, "bool1")) != 1)
return 2;
if (Marshal.ReadInt32 (p, (int)Marshal.OffsetOf (t, "bool2")) != 0)
return 3;
if (Marshal.ReadInt32 (p, (int)Marshal.OffsetOf (t, "b")) != 2)
return 4;
if (Marshal.ReadInt16 (p, 16) != 6)
return 5;
if (Marshal.ReadInt16 (p, 18) != 5)
return 6;
if (Marshal.ReadByte (p, 20) != 97)
return 7;
if (Marshal.ReadByte (p, 21) != 98)
return 8;
if (Marshal.ReadByte (p, 22) != 99)
return 9;
if (Marshal.ReadByte (p, 23) != 0)
return 10;
if (Marshal.ReadInt32 (p, 24) != 3)
return 11;
if (Marshal.ReadInt32 (p, 28) != 4)
return 12;
if (Marshal.ReadInt32 (p, 32) != 10)
return 13;
if (Marshal.ReadInt32 (p, 36) != 11)
return 14;
if (Marshal.ReadByte (p, (int)Marshal.OffsetOf (t, "a2")) != 97)
return 15;
if (Marshal.ReadByte (p, (int)Marshal.OffsetOf (t, "a2") + 1) != 98)
return 16;
SimpleStruct cp = (SimpleStruct)Marshal.PtrToStructure (p, ss.GetType ());
if (cp.a != 1)
return 16;
if (cp.bool1 != true)
return 17;
if (cp.bool2 != false)
return 18;
if (cp.b != 2)
return 19;
if (cp.a1 [0] != 6)
return 20;
if (cp.a1 [1] != 5)
return 21;
if (cp.s1 != "abc")
return 22;
if (cp.emb1.a != 3)
return 23;
if (cp.emb1.b != 4)
return 24;
if (cp.emb2.a != 10)
return 25;
if (cp.emb2.b != 11)
return 26;
if (cp.s2 != "just a test")
//.........这里部分代码省略.........