예제 #1
0
        public unsafe void AddressOfStructTest()
        {
            var astruct = new IntStrcut {
                Value = 255
            };
            var ptr = Native.AddressOf(ref astruct);

            Assert.Equal((IntPtr)(&astruct), ptr);
        }
예제 #2
0
        public unsafe void AddressOfWrappedStructTest()
        {
            var astruct = new IntStrcut {
                Value = 255
            };
            var ptr        = Native.AddressOf(ref astruct);
            var wrappedPtr = Native.AddressOf((object)astruct, false);

            Assert.Equal((IntPtr)(&astruct), ptr);
            Assert.NotEqual((IntPtr)(&astruct), wrappedPtr);
        }
예제 #3
0
        public void ForStructTest()
        {
            var astruct = new IntStrcut {
                Value = 1
            };

            astruct.For(x => x.Value = 2);
            Assert.Equal(1, astruct.Value);

            astruct.Value = 2;
            Assert.Equal(2, astruct.Value);
        }