2020-06-19

C#写了个Bug,一个用来计算值的属性方法公式有问题,需要使用Xlua热更,然后网上查找关键字:Xlua重写C#的Get属性,找不到解决方法。

突然想到C# 中属性的本质,编译成中间语言后是 get、set 两个方法,调用属性实际上是调用 get 或 set 方法。get 对应名为“get_属性名”的方法,set 对应名为“set_属性名"的方法。

举个栗子:

    public class Person
    {
        private int _age;
        //public int Age
        //{
        //    get { return _age; }
        //    set { _age = value; }
        //}

        public int get_Age()
        {
            return _age;
        }
        public void set_Age(int value)
        {
            _age = value;
        }
    }
image.gif

这里的属性Age就是get_Age和set_Age两个方法,如果不注释掉属性Age的话,编译器也会报错。

于是乎,更改的lua代码只需要重写get_Age和set_Age两个方法就好了。

你可能感兴趣的:(2020-06-19)