将代码段转换为C#

将代码段转换为C#,c#,C#,VS 2008 我在VB网站上找到了这个代码片段 但由于某种原因,我在将其转换为C#时遇到了困难 非常感谢,这似乎有效。不过,这可能是非常没有文档记录的用法: Microsoft.VisualBasic.Devices.Network net = new Microsoft.VisualBasic.Devices.Network(); if (net.IsAvailable) { Text = "Network is ava

VS 2008

我在VB网站上找到了这个代码片段

但由于某种原因,我在将其转换为C#时遇到了困难


非常感谢,

这似乎有效。不过,这可能是非常没有文档记录的用法:

        Microsoft.VisualBasic.Devices.Network net = new Microsoft.VisualBasic.Devices.Network();
        if (net.IsAvailable)
        {
            Text = "Network is available";
        }
        else
        {
            Text = "Network unavailable";
        }

请注意,我需要在我的项目中添加对Microsoft.VisualBasic的引用。

不是VB库中的全部“我的”功能吗?

我通常做的是编写一个小应用程序,然后在Reflector中加载项目并将其分解

using System.Net.NetworkInformation;

    internal class Program
    {
        private static void Main()
        {
            NetworkInterface.GetIsNetworkAvailable();
        }
    }
但是您可以使用这个类:
System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged

是的,garethm是对的,此类(网络)来自VB.Net库-如果在C#项目中使用,则需要引用Microsoft.VisualBasic程序集

适用于我-我的网络可用:)

至于网络与NetworkInterface类的关系,这取决于您接下来要做什么。例如,网络有NetworkAvailabilityChanged事件和UploadFile方法等好东西。另一方面,NetworkInterface可以为您提供一些特定的技术信息,例如速度或它是否支持多播


顺便说一句,使用Microsoft.VisualBasic命名空间中的类没有任何未经记录的内容-它是.NET背后的核心思想,即您可以使用程序集中的类,而不管它们是用什么语言编写的。

我的命名空间来自Visual Basic团队编写的库,但是它是标准.NET安装的一部分,并且完全可以被C#开发使用(事实上,对C#开发非常有用),或者实际上是任何.NET语言。你的编译错误是什么?关于我所做的事情,我唯一的问题是创建我自己的网络类实例-my.etc为你创建类-可能在某些情况下以一种我不知道的特殊方式。
using System.Net.NetworkInformation;

    internal class Program
    {
        private static void Main()
        {
            NetworkInterface.GetIsNetworkAvailable();
        }
    }
Microsoft.VisualBasic.Devices.Network n = new Microsoft.VisualBasic.Devices.Network();
if (n.IsAvailable)
{
    // do stuff
}