乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 4

。LISP的vlax-method-applicable-p?

[复制链接]

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2016-1-31 23:28:03 | 显示全部楼层 |阅读模式
愚蠢的问题后,太久了。不可否认的是,我的第二份(好吧,第三份)孟买蓝宝石+汤尼,用苦艾酒腌制的马扎塔橄榄...嗯....什么是/有什么-一个。NET相当于LISP的vlax-method-applicable-p?
基本上,我希望迭代选择集,并且仅对于所需方法适用的对象,我希望调用所述方法。干杯

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2016-2-1 00:28:24 | 显示全部楼层
类型。获取成员..?..
是一种..?..如果您知道该方法适用的基类。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2016-2-1 04:27:04 | 显示全部楼层
也许像using System;。
使用 System.Collections.Generic;。
使用系统反射;。
使用Autodesk.AutoCAD.DatabaseServices;。
使用Autodesk.AutoCAD.Runtime;。


namespace VlaxMethodApplicableP。
{。
公共类命令。
{。
static HashSet Tset = new HashSet();。

static bool HasMethod(DBObject type, string name)。
{。
类型 t = 类型,GetType();。
if (Tset.Contains(t))。
返回 true;。
foreach (MethodInfo info in t.GetMethods())。
{。
如果 (信息.名称 == 名称)。
{。
Tset.Add(t);。
返回 true;。
}。
}。
返回 false;。
}。
   。
[CommandMethod(“DoIT”)]。
public static void AndDoIt()。
{。
ObjectIdCollection ids = new ObjectIdCollection();。
Database db = HostApplicationServices.WorkingDatabase;。
using (DBObject sp = db.CurrentSpaceId.Open(OpenMode.ForRead))。
{。
foreach (ObjectId id in sp as BlockTableRecord)。
{。
using (DBObject obj = id.Open(OpenMode.ForRead))。
{。
if (HasMethod(obj, “get_StartPoint”))。
ids.Add(id);。
}。
}。
}。
}。
}。
}。
添加类型缓存。
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2016-2-1 05:12:14 | 显示全部楼层

商标:
回复

使用道具 举报

57

主题

559

帖子

13

银币

中流砥柱

Rank: 25

铜币
786
发表于 2016-2-1 05:22:04 | 显示全部楼层
我去过一次DoIt45,但后来我完全忘记了DoIt27做了什么。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 21:47 , Processed in 0.151690 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表