网站首页 > 技术教程 正文
在3dsmax中,通过封装系统DotNet System::Type得到dotNetClass ,我们可以通过反射得到
dotNetClass 类的相关方法属性和字段,在一般高级语言反射是个非常实用的特性很多程序集的内容都可以通过特性访问到,为了能够在maxscript里面使用,max也使用反射这一技术。
一个类无非就是由成员构成包括属性、字段、方法,构造器,索引器等构成
01介绍在maxscript里面怎么实例化dotnetclass对象
在maxscript里面有专门的构造器生成对象,而不是new的方式生成
dotNetClass {<dotNetObject> | <dotNetControl> | <class_type_string>}--文档的构造器格式
--在3dsmax侦听器里面输入:
theClass = dotNetClass "System.Drawing.Size"
--得到结果:dotNetClass:System.Drawing.Size
--再来一个例子,输入如下:
dotNetClass "System.Windows.Forms.MonthCalendar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
在.net平台,c#文件内容结构一般是工程.>项目>namespace>class>members,,多个namespace 一旦被引用集聚在一起可以组成程序集,也就是assembly,相当于将程序放在一个文件夹里面,因此我们可以通过创建文件夹,然后里面放入想要的程序,方便使用这些程序,例如:
assembly = dotNetClass "System.Reflection.Assembly"--创建了一个dotNetClass的程序集
r = assembly.loadfrom "F:\\FlashTrackBar\\bin\\Debug\\FlashTrackBar.dll"--程序集内容加载的路径
特别说明:
A一般的程序集会以.dll为后缀的文件形式存在,dll是CLR下的逻辑功能单元,方便 .NET 公共语言运行库 (CLR) 控制之下运行使用。
B程序集Assemblies 一旦加载就不能卸载。
02 Dotnetclass的方法
获得属性的值方法
--方法格式:getProperty <dotNetClass> <prop name> [asDotNetObject:<bool>]
o = dotNetClass "System.String"--创建string类型的类
-- o has only one property, .Empty:
prop = getProperty o "Empty"--获得string类型的类型属性为空的值,因为string类型的类型属性本来就是空的
D=dotNetClass "System.Double" --创建double类型的类型对象
prop=getProperty D #MaxValue
--计算结果返回Double的最大值:1.79769d+308
获得dotnetclass的对象属性的名字方法
--方法格式:getPropNames <dotNetClass> [showStaticOnly:<bool>] [declaredOnTypeOnly:<bool>]
[showStaticOnly:<bool>]:在maxscript文档中方括号”[ ]“里面的内容表示是选填的可以不填,此处就是选填内容,表示填入的如果是true那么就只展示静态属性的名字,false表示全部属性展示
[declaredOnTypeOnly:<bool>]:表示展示显示类的属性,不展示隐藏或者子类的属性
D=dotNetClass "System.Double" --创建double类型的类型对象
getPropNames D--获得dotnetclass类的对象的属性名字
--计算结果返回一个数组:#(#epsilon, #MaxValue, #MinValue, #NaN, #NegativeInfinity, #PositiveInfinity)
展示DotNetClass的对象的属性,这次不是属性的值和名字哦
--方法格式:showProperties <dotNetClass> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [showMethods:<bool>] [showAttributes:<bool>] [declaredOnTypeOnly:<bool>]
D=dotNetClass "System.Double" --创建double类型的类型对象
showProperties D--获取属性
以下是返回结果:
.Epsilon : <System.Double>, read-only, static
.MaxValue : <System.Double>, read-only, static
.MinValue : <System.Double>, read-only, static
.NaN : <System.Double>, read-only, static
.NegativeInfinity : <System.Double>, read-only, static
.PositiveInfinity : <System.Double>, read-only, static
true
展示DoyNetClass对象上是事件的方法
--方法格式:showEvents<dotNetClass> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [declaredOnTypeOnly:<bool>]
theClass = dotNetClass "System.Drawing.Size"--创建对象
showEvents theClass
获得构造器的方法
方法格式:dotNet.showConstructors <dotNetClass> [to:<stream>]
theClass = dotNetClass "System.Drawing.Size"--创建对象
dotNet.showConstructors theClass
猜你喜欢
- 2024-10-19 ASP.NET Core WebAPI 日常开发最佳实践(Part 1)
- 2024-10-19 跟着官网学ASP.NET Core 6.0之请求参数模型验证
- 2024-10-19 ASP.NETCore统一处理404错误都有哪些方式?
- 2024-10-19 .NET Core 下使用 Kafka .net core di
- 2024-10-19 神经网络-Inception 神经网络inception模块
- 2024-10-19 .NET 面试题汇总(一) net面试题2021
- 2024-10-19 .NET项目升级:可为空引用 可空引用类型
- 2024-10-19 Visual Studio开发IDE,C#语言 , .Net框架
- 2024-10-19 Java程序设计试卷 java程序设计基础期末考试试题
- 2024-10-19 安徽管家婆软件分享管家婆软件使用教程视频
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)