首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >过时的含义

过时的含义
EN

Stack Overflow用户
提问于 2015-04-21 19:06:59
回答 2查看 5.4K关注 0票数 4

我接手了一个包含大量遗留代码(包括C++和C# )的项目,目前在VS 2010下编译(在windows 7上)。

当我构建我的解决方案时,令人惊讶的是,143个项目成功地完成了。然而,船上有大量的警告。令人惊讶的是,他们中的许多人对过时的功能发出了警告。

代码语言:javascript
运行
复制
warning CS0618: 'System.Runtime.InteropServices.UCOMIMoniker' is obsolete
warning CS0618: 'System.Runtime.InteropServices.UCOMIEnumMoniker' is obsolete
warning CS0618: 'System.Runtime.InteropServices.UCOMIRunningObjectTable' is obsolete
warning CS0618: 'System.Runtime.InteropServices.UCOMIRunningObjectTable' is obsolete
warning CS0618: 'System.Runtime.InteropServices.UCOMIBindCtx' is obsolete
warning CS0618: 'System.IO.Path.InvalidPathChars' is obsolete
warning CS0618: 'System.Configuration.ConfigurationSettings.AppSettings' is obsolete
warning CS0618: 'System.Net.Dns.GetHostByName(string)' is obsolete

这是什么意思?这些函数仍然是明确定义的,或者它们不会编译,或者会给我某种“找不到”或“未定义”错误。缺少实现吗?这些功能是否仍然有效(和以前一样)?

有几个我查过了,它们已经过时很长时间了。例如,GetHostByName:

.NET Framework

代码语言:javascript
运行
复制
Supported in: 1.1
Obsolete (compiler warning) in 4.6
Obsolete (compiler warning) in 4.6
Obsolete (compiler warning) in 4.5
Obsolete (compiler warning) in 4.5.1
Obsolete (compiler warning) in 4.5.2
Obsolete (compiler warning) in 4
Obsolete (compiler warning) in 3.5
Obsolete (compiler warning) in 3.5 SP1
Obsolete (compiler warning) in 3.0
Obsolete (compiler warning) in 3.0 SP1
Obsolete (compiler warning) in 3.0 SP2
Obsolete (compiler warning) in 2.0
Obsolete (compiler warning) in 2.0 SP1
Obsolete (compiler warning) in 2.0 SP2

如果我理解正确的话,它在过去的8-9年里已经过时了(.NET 2.0是在2006年发布的)。为什么没人修好这些?需要修理吗?当我研究GetHostByName方法时,它被GetHostEntry所取代。很简单..。但是等等,有很多人抱怨这个新函数的工作方式不一样,也许你应该用调用GetHostAddresses来代替它。好吧,该死的。

考虑到我的解决方案中有超过28k的文件,我不确定我是否可以随意地处理事情。是否有方法知道将支持多长时间的过时功能?我是否应该期望一旦我安装了这个系统,这些系统就能正常工作?让代码调用过时的接口(MSDN)意味着什么?

我并不是想了解如何从我自己的系统中删除过时的代码,而是系统应该如何处理外部系统上过时的接口(例如。( MSDN)它们显然没有遵循一个简单的循环,即标记、替换和删除旧接口。他们的政策是什么?MSDN定义的接口的用户应该如何对过时的标记做出反应,特别是当过时的代码没有被“苹果到苹果”的等效函数替换时。

EN

回答 2

Stack Overflow用户

发布于 2015-04-21 19:09:13

在编程中,“过时”一词意味着程序集/资源/函数/类型已过时或过时,这意味着编译器注意到有一种更好或更新的方法来实现它。示例:PHP的mysql_query()函数。

票数 2
EN

Stack Overflow用户

发布于 2015-04-21 20:17:14

我同意以上所有的答案。我在上面的建议是,当编译器抱怨这个过时的方法时,请继续使用SDK中提供的替代方法来代替它。如果您不打算将您的项目升级到更新的.NET框架,那么您将很好地接受此警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29781018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档