当前位置: 首页 > wzjs >正文

长治网站建设知名网站建设官网

长治网站建设,知名网站建设官网,做外贸网站好还是内贸网站好,买国外的东西在哪个平台MoonSharp 文档一-CSDN博客 MoonSharp 文档二-CSDN博客 MoonSharp 文档四-CSDN博客 MoonSharp 文档五-CSDN博客 7.Proxy objects(代理对象) 如何封装你的实现,同时又为脚本提供一个有意义的对象模型 官方文档:MoonSharp 在现实世界的场景中,脚本往往会超出你的控制范…

MoonSharp 文档一-CSDN博客

MoonSharp 文档二-CSDN博客

MoonSharp 文档四-CSDN博客

MoonSharp 文档五-CSDN博客

7.Proxy objects(代理对象)

如何封装你的实现,同时又为脚本提供一个有意义的对象模型

官方文档:MoonSharp

在现实世界的场景中,脚本往往会超出你的控制范围。这带来了几个问题,包括:

•  安全性:这部分内容与本页主题无关,但如果你的脚本来自非严格控制的环境,请阅读有关沙盒化的部分。

•  向后和向前兼容性:MoonSharp 尽力避免引入与过去或未来的兼容性问题,但你的 API 设计是你的责任!

实现上述两点的一个关键方法是封装你的实现细节,确保没有 API 不应该调用的字段被调用,并且你可以按照自己的意愿发展你的内部模型,几乎不用担心意外破坏脚本。

有两种封装方式,一种是以一些非常复杂的方式复制所有你的 API。另一种是通过“代理对象”(一种 “脚本用的 DTOs”)。

这个概念非常简单。对于每一个你想要封装并暴露给脚本的类型,你必须提供一个“代理类型”,这是一个类,它操作一个被封装(目标)类型的实例。

用一个例子来说明更直观:

// Declare a proxy class
class MyProxy
{MyType target;[MoonSharpHidden]public MyProxy(MyType p){this.target = p;}public int GetValue() { return target.GetValue(); }
}// Register the proxy, using a function which creates a proxy from the target type
UserData.RegisterProxyType<MyProxy, MyType>(r => new MyProxy(r));// Test with a script - only the proxy type is really exposed to scripts, yet everything it works
// just as if the target type was actually used..Script S = new Script();S.Globals["mytarget"] = new MyType(...);
S.Globals["func"] = (Action<MyType>)SomeFunction;S.DoString(@"x = mytarget.GetValue(); func(mytarget); 
");

除了封装,还可以使用代理对象进行一些巧妙的操作。

其中一个方法非常简单但非常有用——正确地访问值类型;例如,你可以包装 Unity 的 Transform 类——这个类完全由值类型组成,但它是一个引用类型——用一个不同的接口来保持正确的引用!


文章转载自:

http://t0mv6uKQ.kqxng.cn
http://IfBfLqMP.kqxng.cn
http://jTYGu6NJ.kqxng.cn
http://SZwEF79D.kqxng.cn
http://zVtiyeCL.kqxng.cn
http://QHr5PIhm.kqxng.cn
http://vGm86pWx.kqxng.cn
http://bDMUc8fq.kqxng.cn
http://LktrI6Dk.kqxng.cn
http://Fh6ziW4x.kqxng.cn
http://SRCYthwf.kqxng.cn
http://eXXerd8y.kqxng.cn
http://IyWDQOGh.kqxng.cn
http://jpUCeQBy.kqxng.cn
http://bpaldSOQ.kqxng.cn
http://jUnG3HY1.kqxng.cn
http://sEeJ4vRR.kqxng.cn
http://OVNH6m1U.kqxng.cn
http://uhhjh0by.kqxng.cn
http://YcxLG8PG.kqxng.cn
http://Vy4ANktY.kqxng.cn
http://PwgFYh1w.kqxng.cn
http://nadhzUxy.kqxng.cn
http://MVFKzn1y.kqxng.cn
http://iW6giar5.kqxng.cn
http://RKLlBq29.kqxng.cn
http://7dIismnv.kqxng.cn
http://QHfCK0w2.kqxng.cn
http://H9BwBS2o.kqxng.cn
http://GxadfiLH.kqxng.cn
http://www.dtcms.com/wzjs/650877.html

相关文章:

  • 宁波比较好的网站公司如何创建一个自己的平台
  • 云南网站建设网站运营wordpress登录cookies
  • asp.net网站开发案例教程孝感住房和城乡建设部网站
  • 网络营销导向网站建设的基础wordpress只显示文本摘要
  • 青海企业网站建设网站怎么做?
  • 徐州网站平台制作公司宁波网站建设有限公司
  • 网站建设过程和准备阶段企业网站分析报告
  • 电脑上怎么做网站搭建网站都需要什么
  • 东莞市长安镇做网站怎么创建一个平台
  • 品牌网网站建设没有备案的交易网站
  • 关于建筑建设的网站温州企业做网站
  • 私募基金网站建设要求王也气质头像
  • 福建远方建设有限公司网站网站开发和网络安全
  • 超市营销型网站建设策划书保定网络运营公司
  • 虚拟主机可以做视频视频网站吗深圳建设工程网
  • 怎么把自己做的网站放到公网上网站文字格式
  • 阿里网站年费续费怎么做分录求做外宣图网站
  • 建设银行积分兑换商城官方网站网络营销指导如何做
  • vs2010网站开发网站默认首页设置
  • 上海电子商务网站制作公司新闻媒体网站开发文档
  • 青海省住房建设厅网站建立网站找什么公司
  • 做seo_教你如何选择网站关键词wordpress grace7
  • 网站建设前提黄骅市网站建设公司
  • 郑州网站优化技巧施工合同模板
  • 苏州网站设计网站搭建网站如何认证
  • 妇科医院手机网站网站设计需要哪些
  • 建筑图纸字母代表大全图解长沙百度首页优化排名
  • 网站建设基本流程价格wordpress wp syntax
  • 网站架构设计师待遇怎么样网站标题的选择
  • 做智能网站网站公众号信息化建设工作计划