Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 过时的含义 我已经接管了一个项目,有很多遗留代码,既有C++,也有C语言,目前正在VS 2010(Windows 7)下编译。p>_C#_C++_.net_Visual Studio 2010_Obsolete - Fatal编程技术网

C# 过时的含义 我已经接管了一个项目,有很多遗留代码,既有C++,也有C语言,目前正在VS 2010(Windows 7)下编译。p>

C# 过时的含义 我已经接管了一个项目,有很多遗留代码,既有C++,也有C语言,目前正在VS 2010(Windows 7)下编译。p>,c#,c++,.net,visual-studio-2010,obsolete,C#,C++,.net,Visual Studio 2010,Obsolete,当我构建解决方案时,令人惊讶的是,143个项目成功构建。然而,有一船的警告。令人惊讶的是,他们中有很多人对过时的功能提出了警告 warning CS0618: 'System.Runtime.InteropServices.UCOMIMoniker' is obsolete warning CS0618: 'System.Runtime.InteropServices.UCOMIEnumMoniker' is obsolete warning CS0618: 'System.Runtime.In

当我构建解决方案时,令人惊讶的是,143个项目成功构建。然而,有一船的警告。令人惊讶的是,他们中有很多人对过时的功能提出了警告

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框架

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年里已经过时了(.NET2.0在2006年推出)。为什么没有人修理这些?它们需要修理吗?当我研究GetHostByName方法时,它被GetHostEntry所取代。很简单。。。但是等等,有很多人抱怨新函数的工作方式不一样,也许你应该用调用GetHostAddresses来代替它。嗯,该死

考虑到我的解决方案中有超过28k个文件,我不确定我是否可以随意处理。有没有办法知道过时的函数将被支持多久?我是否应该期望在安装系统后,这些都能正常工作?让代码调用过时接口(MSDN)的系统含义是什么


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

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

类或方法通常会被标记为过时,因为它们在下一版本中将被弃用,或者不再是执行特定任务的最有效方式。然而,微软经常将这些方法保留很长一段时间,以保证向后兼容性。

我同意上述所有答案。最重要的是,当编译器抱怨过时的方法时,我会提醒您继续使用SDK中提供的替代方法。如果您不打算将您的项目升级到更新的.NET framework,那么您最好终生接受此警告。

我不会说它“会导致问题”,而是说“现在有更好的方法”。我想我已经回答了这个问题的具体部分(尽管是针对C的),并且仍然-“支持过时功能的时间有多长“确实不需要直接负责,因为有很多这样的API可能具有不同的支持生命周期。通常情况下,支持两个主要版本是合理的。我的问题的一个基本方面根本没有在回答中提到。过时的函数接口是否继续有非平凡的实现?就是说,他们还在"工作"吗??在发布我的问题之前,我阅读了这个问题,觉得有许多问题我需要答案。我希望这些方法“有效”(严格地说,就是它们是如何记录的,有时总是抛出异常可能是一种选择,而且我从来没有听说过.Net Framework的API有这种情况),但最终完全消失。