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

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

            SealedBlittable p = new SealedBlittable(10);

            Assert.IsTrue(SimpleBlittableSeqLayoutClassByRef(p));
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio n. 5
0
 private static extern bool SealedBlittableSeqLayoutClassByOutAttr([Out] SealedBlittable p);
Esempio n. 6
0
 private static extern bool SealedBlittableSeqLayoutClassByInAttr([In] SealedBlittable p);
Esempio n. 7
0
 private static extern bool SealedBlittableSeqLayoutClassByRef(SealedBlittable p);
Esempio n. 8
0
 private static extern bool PointersEqual(SealedBlittable obj, ref int field);