public static int Main(string[] args)
 {
     try
     {
         float width  = 1.0f;
         float height = 2.0f;
         PlatformDefaultMemberFunctionNative.C *instance = PlatformDefaultMemberFunctionNative.CreateInstanceOfC(width, height);
         Test8ByteHFA(instance);
         Test4ByteHFA(instance);
         Test4ByteNonHFA(instance);
         TestEnum(instance);
         TestCLong(instance);
         Test8ByteHFAUnmanagedCallersOnly();
         Test4ByteHFAUnmanagedCallersOnly();
         Test4ByteNonHFAUnmanagedCallersOnly();
         TestEnumUnmanagedCallersOnly();
         TestCLongUnmanagedCallersOnly();
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex);
         return(101);
     }
     return(100);
 }
    private static void Test8ByteHFA(PlatformDefaultMemberFunctionNative.C *instance)
    {
        PlatformDefaultMemberFunctionNative.SizeF result = instance->vtable->getSize(instance, 1234);

        Assert.AreEqual(instance->width, result.width);
        Assert.AreEqual(instance->height, result.height);
    }
 private static PlatformDefaultMemberFunctionNative.Width GetWidth(PlatformDefaultMemberFunctionNative.C *c)
 {
     return(new PlatformDefaultMemberFunctionNative.Width
     {
         width = c->width
     });
 }
 private static PlatformDefaultMemberFunctionNative.IntWrapper GetHeightAsInt(PlatformDefaultMemberFunctionNative.C *c)
 {
     return(new PlatformDefaultMemberFunctionNative.IntWrapper
     {
         i = (int)c->height
     });
 }
 private static PlatformDefaultMemberFunctionNative.SizeF GetSize(PlatformDefaultMemberFunctionNative.C *c, int unused)
 {
     return(new PlatformDefaultMemberFunctionNative.SizeF
     {
         width = c->width,
         height = c->height
     });
 }
 private static CLong GetWidthAsLong(PlatformDefaultMemberFunctionNative.C *c)
 {
     return(new CLong((nint)c->width));
 }
 private static PlatformDefaultMemberFunctionNative.E GetE(PlatformDefaultMemberFunctionNative.C *c)
 {
     return(c->dummy);
 }
    private static void TestCLong(PlatformDefaultMemberFunctionNative.C *instance)
    {
        CLong result = instance->vtable->getWidthAsLong(instance);

        Assert.AreEqual((nint)instance->width, result.Value);
    }
    private static void TestEnum(PlatformDefaultMemberFunctionNative.C *instance)
    {
        PlatformDefaultMemberFunctionNative.E result = instance->vtable->getE(instance);

        Assert.AreEqual(instance->dummy, result);
    }
    private static void Test4ByteNonHFA(PlatformDefaultMemberFunctionNative.C *instance)
    {
        PlatformDefaultMemberFunctionNative.IntWrapper result = instance->vtable->getHeightAsInt(instance);

        Assert.AreEqual((int)instance->height, result.i);
    }
    private static void Test4ByteHFA(PlatformDefaultMemberFunctionNative.C *instance)
    {
        PlatformDefaultMemberFunctionNative.Width result = instance->vtable->getWidth(instance);

        Assert.AreEqual(instance->width, result.width);
    }