文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C# 中CreateEmployee()函数如何使用

2023-06-17 23:24

关注

今天就跟大家聊聊有关C# 中CreateEmployee()函数如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

修改C# CreateEmployee()函数以重用

1)让我们来修改C# CreateEmployee()函数,以让它可以接收名字、薪水、部门和职位并返回创建的雇员块索引的ObjectId。函数的形式如下(你可以改变参数顺序)

  1. public ObjectId CreateEmployee
    (string name, string division, double salary, Point3d pos) 

2) 移除上面函数中的CommandMethod属性”CREATE”,这样它就不再是用来创建雇员的命令。

3) 修改函数的代码,这样就可以正确地设置块索引的名字、职位、部门和薪水和它的扩展字典。

  1. //替换  

  2. BlockReference br = new BlockReference
    (new Point3d(10, 10, 0), CreateEmployeeDefinition());  

  3. //为  

  4. BlockReference br = new BlockReference
    (pos, CreateEmployeeDefinition());  

//替换   xRec.Data = new ResultBuffer(  new TypedValue((int)DxfCode.Text, "Earnest Shackleton"),  new TypedValue((int)DxfCode.Real, 72000),  new TypedValue((int)DxfCode.Text, "Sales"));   //为   xRec.Data = new ResultBuffer(  new TypedValue((int)DxfCode.Text, name),  new TypedValue((int)DxfCode.Real, salary),  new TypedValue((int)DxfCode.Text, division));

4) 因为我们把雇员的名字从MText替换成块的属性定义,因此我们要创建一个相应的属性索引来显示雇员的名字。属性索引将使用属性定义的属性。

  1. //替换:  

  2.  

  3. btr.AppendEntity(br);//加入索引到模型空间  

  4. trans.AddNewlyCreatedDBObject(br,true);//让事务处理知道  

  5.  

  6. //为  

  7.  

  8. AttributeReferenceattRef=newAttributeReference();  

  9. //遍历雇员块来查找属性定义  

  10. BlockTableRecordempBtr=(BlockTableRecord)trans.
    GetObject(bt["EmployeeBlock"],OpenMode.ForRead);  

  11. foreach(ObjectIdidinempBtr)  

  12. {  

  13. Entityent=(Entity)trans.GetObject(id,OpenMode.ForRead,false);  

  14. //打开当前的对象!  

  15. if(entisAttributeDefinition)  

  16. {  

  17. //设置属性为属性索引中的属性定义  

  18. AttributeDefinitionattDef=((AttributeDefinition)(ent));  

  19. attRef.SetPropertiesFrom(attDef);  

  20. attRef.Position=newPoint3d(attDef.Position.X+br.Position.X,
    attDef.Position.Y+br.Position.Y,attDef.Position.Z+br.Position.Z);  

  21. attRef.Height=attDef.Height;  

  22. attRef.Rotation=attDef.Rotation;  

  23. attRef.Tag=attDef.Tag;  

  24. attRef.TextString=name;  

  25. }  

  26. }  

  27. //把索引加入模型空间  

  28. btr.AppendEntity(br);  

  29. //把属性索引加入到块索引  

  30. br.AttributeCollection.AppendAttribute(attRef);  

  31. //让事务处理知道  

  32. trans.AddNewlyCreatedDBObject(attRef,true);  

  33. trans.AddNewlyCreatedDBObject(br,true); 

5)不要忘记返回雇员块索引的ObjectId,但要在提交事务处理之后才能返回:

trans.Commit();  return br.ObjectId;

6) 测试C# CreateEmployee()函数。加入一个Test命令来测试CreateEmployee:

[CommandMethod("Test")]  public void Test()  {  CreateEmployee("Earnest Shackleton", "Sales", 10000, new Point3d(10, 10, 0));  }

看完上述内容,你们对C# 中CreateEmployee()函数如何使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯