0

我是 Object ARX 的新手,目前我尝试使用 Visual Studio 2012 在 C# 中编码。前几天我遇到了这种方法(不是错误或实际的编码问题,但它让我想知道):

DBObject::Erase();

DBObject::Erase(bool erasing);
  1. 我想知道这两种方法之间有什么区别?何时使用/不使用特定的?我做了一些研究,发现后一种方法实际上并没有擦除对象,而只是将其标记为“已删除”,这样如果我设置了保存绘图时它就不会出现或归档bool erasing = true。另一方面,如果我设置bool erasing = false,对象可以被恢复(它仍然存在于内存中)。不过,我仍然不真正理解第一种方法。

  2. 我的研究引出了另一个问题:如何使用第二种方法恢复被擦除的对象?我遇到的另一个方法是这样的

    _recover (parameter1, parameter2, parameter3, parameter4);

但我似乎无法再次找到它。这是什么方法以及如何使用它?

非常感谢任何解释、想法或参考。

4

1 回答 1

0
  1. 这个问题的答案是方法本身。一旦“擦除”设置为true,对象就会被标记为“已擦除”,但只有当我们保存绘图时,对象才真正被擦除。否则,它会保留在数据库中,但它不需要来自用户的命令或交互。只要不保存绘图,我们可以再次调用该方法为

    对象。擦除(假);

将对象设置为“未擦除”。这是来自对象 ARX 文档,文件名 arxref.chm 。除了简短的描述外,AutoCAD .NET 的文档没有提供太多关于此的详细信息:

“设置擦除标志开/关”

  1. 很抱歉造成混淆,我之前看到的方法实际上是对象 ARX/autocad .NET 中擦除事件的反应器/事件处理程序。
于 2017-10-23T07:19:32.303 回答