C#:“过时”函数和“弃用”函数有什么区别?

vik*_*ata 5 c# function deprecated obsolete difference

C# 具有名为“Obsolete”的属性,以指示不应再使用某个函数。在 .net API 规范中,当类/函数过时时,我们说这是“不推荐使用的”。所以我想知道“过时”和“过时”之间的区别。

  1. 如果它们的意思相同,我们不需要两个词,对吗?
  2. 如果他们的意思不同,为什么有时他们似乎在谈论相同的概念?

谢谢。

Joh*_*han 3

根据english.stackexchange.com

我不认为计算机科学领域内存在严格遵守的区别。但在我读过的大多数上下文中,deprecated 或多或少是一个“标记”,表示不应该使用它,已经创建了具有相同效果的其他东西,并且很快就会被删除。它可能仍然按预期工作(请阅读最后一段,了解我为什么说可能),但它很快就会消失。当从一个系统过渡到另一个系统时,这是有意作为软件开发生命周期的一部分来完成的 - 保留旧系统的所有功能,以确保所有过去的程序仍然有效,并且为开发人员提供了过渡的时间他们的代码转移到新系统。

过时意味着它不再按预期工作,或者根本不做任何事情。这与非功能性不同,因为它意味着它是由新功能呈现的,或者其功能在新参数下不再相关。

当一个函数既被弃用又被废弃时,这两个术语之间的界限就会变得模糊。大多数时候,过时的函数会被弃用,因为最好阻止开发人员使用它并删除它。由于通常建议不要使用已弃用的函数,因此该函数是否也已过时是无关紧要的,因此这两个术语的合并。