Google Code Prettify

顯示具有 C# 標籤的文章。 顯示所有文章
顯示具有 C# 標籤的文章。 顯示所有文章

bool ret = default; ret的結果是什麼?

在 C# 中,default 關鍵字用於生成指定類型的默認值。當用於 bool 類型時,default 會生成 false,因為 false 是 bool 類型的默認值。

因此,下面的代碼:

csharp

bool ret = default;

會將 ret 設置為 false。


更詳細的解釋

  • 數值類型 (int, float, double 等):默認值是 0。
  • 引用類型 (class, string 等):默認值是 null。
  • 布爾類型 (bool):默認值是 false。
  • 結構 (struct):默認值是所有成員設置為其默認值的結構。
  • 枚舉 (enum):默認值是 0 對應的枚舉成員。

因此,在這段代碼中:

csharp

bool ret = default; Console.WriteLine(ret); // Output: False

ret 的值將是 false。

這是因為 bool 類型的默認值在 C# 中是 false。

[C#]Windows 10 停用與啟用網路卡(連線)[手把手教程][原創]

當我們要停用或啟用網路連線的時候,手動的方式是用滑鼠點選畫面左下角的開始,再點選齒輪圖示






就可以進入到 Windows 設定的功能選擇畫面,我們選擇網路與網際網路





接著我們點選變更介面卡選項,就可以到網路連線的設定畫面了。








畫面中會出現很多的網路連線設定項目,你可以在你要變更設定的網路連線項目上按下滑鼠的右鍵,就會出現功能表。







功能表的第一項就是停用或啟用 用滑鼠點選它你就可以完成停用或啟用









​
接著我們進入到真正的主題,就是如何撰寫程式來停用或啟用網路連線,首先我們需要一個元件,這個元件的位置是在 C:\Windows\System32\hnetcfg.dll ,你需要先將它設定為參考 。







然後再將它設定為引用(using NETCONLib;),你就可以使用這個元件了,原始碼如下:




using System;

using NETCONLib;

namespace IC4 {
    class Program {
        static void Main(string[] args) {
            try {
                NetSharingManagerClass netSharingMgr = new NetSharingManagerClass();
                INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection;
                foreach(INetConnection connection in connections) {
                    INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection);
                    if(connProps.Name == "MyNetworkInterface") { //須設定成你自己的網路連線名稱
                        connection.Disconnect(); //停用網絡
                        connection.Connect();    //啟用網絡
                    }
                }
            }
            catch(Exception ex) {
                Console.WriteLine(ex.ToString());
            }
            Console.WriteLine("Press any key...");
            Console.ReadKey();
        }
        static void Enable(string interfaceName) {
            System.Diagnostics.ProcessStartInfo psi =
                   new System.Diagnostics.ProcessStartInfo("netsh", "interface set interface \"" + interfaceName + "\" enable");
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo = psi;
            p.Start();
        }
        static void Disable(string interfaceName) {
            System.Diagnostics.ProcessStartInfo psi =
                new System.Diagnostics.ProcessStartInfo("netsh", "interface set interface \"" + interfaceName + "\" disable");
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo = psi;
            p.Start();
        }
    }
}


說明:
先建立一個 "主控台應用程式" 的專案,再將我提供的程式複製到你的專案中。



​
 Disconnect() 就是停用
Connect() 就是啟用

你可以自由決定是要停用或啟用網路卡(連線)


在程式中有一行需要稍微注意一下

if(connProps.Name == "MyNetworkInterface") { //須設定成你自己的網路連線名稱


這一行程式中的 "MyNetworkInterface" 你必須將它改成你自已的網路卡(連線)的名稱,程式就可以將它停用或啟用。

[C#]實現PPPOE撥號與掛斷

廢話不多說了, 直接看 Code 吧!

撥接上網程式:

private void Connect(string In_EntryName, string In_UserName, string In_Password) {
     Process NetworkOpen_Process = new Process();
     NetworkOpen_Process.StartInfo.FileName = "rasdial";
     string ArgumentsString = string.Format("{0} {1} {2}", In_EntryName, In_UserName, In_Password);
     NetworkOpen_Process.StartInfo.Arguments = ArgumentsString;
     NetworkOpen_Process.Start();//執行
}

網路斷開程式:
private void Disconect() {
    Process NetworkClose_Process = new Process();
    NetworkClose_Process.StartInfo.FileName = "rasdial";
    NetworkClose_Process.StartInfo.Arguments = "/disconnect";
    NetworkClose_Process.Start();//執行
    NetworkClose_Process.WaitForExit();
}

判斷是否在連線狀態:

[DllImport("wininet")]
public static extern bool InternetGetConnectedState(
     ref uint lpdwFlags,
     uint dwReserved
    );
private bool isConnect() {
    uint flags = 0x0;
    return InternetGetConnectedState(ref flags, 0);
}

在撥接上網時要傳入:
     In_EntryName: 您撥接的設定名稱 (我個人是用下圖的ADSL)
     In_UserName: 您撥接的帳號
     In_Password: 您撥接的密碼


 撥接的設定畫面



怎能樣? 應該有清楚吧! ^_^