簡體   English   中英

將代碼段轉換為C#

[英]convert code snippet to C#

VS 2008

我有一個在VB網站上找到的代碼段。

但是由於某種原因,我在將其轉換為C#時遇到了麻煩。

My.Computer.Network.IsAvailable

非常感謝,

using System.Net.NetworkInformation;

    internal class Program
    {
        private static void Main()
        {
            NetworkInterface.GetIsNetworkAvailable();
        }
    }

是的,garethm是正確的,此類(網絡)來自VB.NET庫-如果在C#項目中使用,則需要引用Microsoft.VisualBasic程序集。

Microsoft.VisualBasic.Devices.Network n = new Microsoft.VisualBasic.Devices.Network();
if (n.IsAvailable)
{
    // do stuff
}

為我工作-我的網絡可用:)。

至於Network與NetworkInterface類的關系,取決於您下一步要做什么。 例如,網絡具有諸如NetworkAvailabilityChanged事件和UploadFile方法之類的好東西。 另一方面,NetworkInterface可以為您提供許多特定的技術信息,例如速度或是否支持多播。

順便說一句,使用Microsoft.VisualBasic命名空間中的類並沒有任何文獻記載-這是.NET的核心思想,您可以使用程序集中的類而不管它們是以什么語言編寫的。

我通常要做的是編寫一個小應用程序,然后加載然后在Reflector中投影並反匯編它。

但您可以使用此類:System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged

這似乎起作用。 不過,這可能是非常未記錄的用法:

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

請注意,我需要在項目中添加對Microsoft.VisualBasic的引用。

難道不是整個VB庫中的“我的”東西嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM