Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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#/Visual Studio中的预编译器指令检测网络连接吗?e、 g.#如果连接到网络_C#_Visual Studio_Visual Studio 2010_C Preprocessor - Fatal编程技术网

我可以通过C#/Visual Studio中的预编译器指令检测网络连接吗?e、 g.#如果连接到网络

我可以通过C#/Visual Studio中的预编译器指令检测网络连接吗?e、 g.#如果连接到网络,c#,visual-studio,visual-studio-2010,c-preprocessor,C#,Visual Studio,Visual Studio 2010,C Preprocessor,当我编码/测试时,我并不总是有网络连接,就像我在旅行(火车、航班等)时编码一样。我想设置一个预编译器条件,以便在未检测到连接时跳过一些代码。当然,我可以只处理错误,但我不希望这种逻辑成为代码库的一部分。有办法做到这一点吗?也许是宏 例如: #if ConnectedToNetwork PerformFunctionThatRequiresNetwork(); #else DoSomethingElseThatDoentRequireNetwork(); #endif 我不这么认

当我编码/测试时,我并不总是有网络连接,就像我在旅行(火车、航班等)时编码一样。我想设置一个预编译器条件,以便在未检测到连接时跳过一些代码。当然,我可以只处理错误,但我不希望这种逻辑成为代码库的一部分。有办法做到这一点吗?也许是宏

例如:

#if ConnectedToNetwork
    PerformFunctionThatRequiresNetwork();
#else
    DoSomethingElseThatDoentRequireNetwork();
#endif
我不这么认为。。。 最接近您想要的东西是一种能够动态交换文件的插件,但我认为这种东西不存在

我认为最好的办法是通过代理类来处理它。也就是说,为需要联网/非联网的功能创建一个接口,并实现两个不同的类。然后根据网络的配置或检测加载相应的处理程序类


马里奥

你知道什么时候你没有网络吗?如果是这样的话,为什么不设置一个具有“无网络”设置的新生成定义,并在您知道没有网络的地方进行调试时使用它呢?我认为这比创建一个编程的预编译步骤要容易得多,因为这是一个开发问题

至于“我必须在预编译中这样做”,我将分离出调用网络的代码,并编译一个“非网络”版本。在编译步骤中,可以轻松地将其交换以进行调试,并绕过该问题


另一个问题是,这是否在运行时得到更好的服务。当用户没有网络时,是否也应该关闭网络位,或者您只是通过异常处理这种情况?

您确定要进行编译时检查而不是运行时检查吗?顺便说一句,C没有预编译器。@John Saunders:对,“预处理器”不,它也没有预处理器。Microsoft称之为预处理器“预处理器指令”,这就是为什么我这样称呼它们。