public void SetterWorksForReferenceType()
        {
            // Arrange
            var mine     = new MyProps();
            var accessor = new FastPropertyAccessor <MyProps>(mine.GetType().GetProperty("StringProp"));

            mine.StringProp = "*4";

            // Act
            accessor.SetValue(mine, "#3");

            // Assert
            Assert.Equal("#3", accessor.GetValue(mine));
            Assert.Equal("#3", mine.StringProp);
        }
        public void SetterWorksForValueType()
        {
            // Arrange
            var mine     = new MyProps();
            var accessor = new FastPropertyAccessor <MyProps>(mine.GetType().GetProperty("IntProp"));

            mine.IntProp = 4;

            // Act
            accessor.SetValue(mine, 3);

            // Assert
            Assert.Equal(3, accessor.GetValue(mine));
            Assert.Equal(3, mine.IntProp);
        }