乐筑天下

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

[原创] C#泛型应用 BY游天居士

[复制链接]

7

主题

55

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2009-11-22 00:57:00 | 显示全部楼层 |阅读模式
如果没有泛型根据objectId反回相应的对象的话。代码相当的麻烦。
以下是我的CODE。(前提是知道这个ID是一个什么类型)
static public T IdTOEntity(ObjectId Id)
        {
            Database db = Id.Database;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                T ent = (T)trans.GetObject(Id, OpenMode.ForRead).Clone();
                trans.Commit();
                return ent;
            }
        }
在调用的地方。DBPoint dp = Tools.IdTOEntity(id);
这里的DBPoint。可以是其它类型。如Line.Circle.Arc.等。

回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2009-11-22 17:24:00 | 显示全部楼层
这种写法挺少见:)挺有新意
不过感觉使用as强制转换要好些
另外为什么要用Clone函数获取拷贝呢?
回复

使用道具 举报

7

主题

55

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
83
发表于 2009-11-22 23:19:00 | 显示全部楼层
飞狐兄好!我这样的前提是知道ID是一个什么类型。ID一般是通过选择过滤器得到。如何我只选择直线的话。那么我就可以要求通过ID直接转化成直线。
我用Clone.得到一个复制。如果不用的话。返回一个对象如果不在当前trans修改的话就会出错。(总之我说不清楚。有人喜欢一个方法写到底。我不喜欢分了分。再分。)
回复

使用道具 举报

20

主题

73

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
153
发表于 2009-11-23 10:00:00 | 显示全部楼层
看到你的贴子,让我再回想起泛型的用法.真不错!
这么用,只能指定T是什么类型,得到什么样的类型.
List lstObjId = new List();
这是泛型的集合.泛型是挺好用的,减掉了装箱,卸箱的内存开销.
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 15:55 , Processed in 2.334012 second(s), 60 queries .

© 2020-2025 乐筑天下

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