[计算机] Unity3D研究院之C#数据绑定

查看:903 |回复:0 | 2021-4-15 19:04:45

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 qq_LXY_eeb 于 2021-4-15 19:04 编辑

最近研究了一段时间MMVM的数据绑定,目前得出的结论单向绑定就已经够使用了,目前有2种方法实现数据绑定。
      方法1 使用一个类代替基础数据
      如下代码所示,我使用int32来代替int 数据,这样就可以监听数据绑定了。由于C#并没有提供”=”符号的运算符重载,所以需要.value=xx 来触发数据变化事件,而其它计算,比较等都可使用运算符重载或隐式转换的方式。


01.png    

int32.cs核心代码


02.png




方法2 给基础数据起一个别名

利用nameof语法糖来代替别名,比如我们先有一个模块类。nameof语法糖会在编译的时候替换成字符串,所以它没有额外性能开销。



监听模块类中数据被修改



   

Event就比较简单了,注意这里还需要补充RemoveListener方法,如果要考虑其他short long float double这些数据可以拓展成泛型。




我个人觉得方法2好一些。1.nameof绑定了数据与事件,这样改了一个另外一个必须要改,不会出现漏改的情况。
2.需要考虑重名的问题,可以拓展nameof进行拼接。
3.需要考虑List中数据的问题,可以拓展nameof进行拼接。

欢迎一起讨论MMVM在实际项目中的应用。
                                                                                                         

评分

参与人数 1活跃度 +15 展开 理由
蒙薪忑哮虱 + 15 【喜欢】看到这么好的帖如同回到初恋的年代!

查看全部评分

2021-4-15 19:04:45  
 赞 赞 0

使用道具 登录

0个回答,把该问题分享到群,邀请大神一起回答。

CG 游戏行业专业问题

程序逻辑文章算法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表