Ejemplo n.º 1
0
        public static void SealedBlittablePinned()
        {
            Console.WriteLine($"Running {nameof(SealedBlittablePinned)}...");
            var blittable = new SealedBlittable(1);

            Assert.True(PointersEqual(blittable, ref blittable.a));
        }
Ejemplo n.º 2
0
        public static void SealedBlittableClass()
        {
            Console.WriteLine($"Running {nameof(SealedBlittableClass)}...");

            SealedBlittable p = new SealedBlittable(10);

            Assert.IsTrue(SimpleBlittableSeqLayoutClassByRef(p));
        }
Ejemplo n.º 3
0
        private static void ValidateSealedBlittableClassInOut(Func <SealedBlittable, bool> pinvoke)
        {
            int             a        = 10;
            int             expected = a + 1;
            SealedBlittable p        = new SealedBlittable(a);

            Assert.IsTrue(pinvoke(p));
            Assert.AreEqual(expected, p.a);
        }
Ejemplo n.º 4
0
        public static void SealedBlittableClassByOutAttr()
        {
            Console.WriteLine($"Running {nameof(SealedBlittableClassByOutAttr)}...");

            int             a        = 10;
            int             expected = a + 1;
            SealedBlittable p        = new SealedBlittable(a);

            Assert.IsTrue(SimpleBlittableSeqLayoutClassByOutAttr(p));
            Assert.AreEqual(expected, p.a);
        }
Ejemplo n.º 5
0
 private static extern bool SealedBlittableSeqLayoutClassByOutAttr([Out] SealedBlittable p);
Ejemplo n.º 6
0
 private static extern bool SealedBlittableSeqLayoutClassByInAttr([In] SealedBlittable p);
Ejemplo n.º 7
0
 private static extern bool SealedBlittableSeqLayoutClassByRef(SealedBlittable p);
Ejemplo n.º 8
0
 private static extern bool PointersEqual(SealedBlittable obj, ref int field);