第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

改變類變量永久 C#

改變類變量永久 C#

C#
波斯汪 2022-11-21 17:00:55
我需要在類內(nèi)部的方法中更改類變量,我該怎么做?class MainGame{    public string Connected_IP = " ";    public short Is_Connected = 0;    static void Main(string[] args)    {        Application.EnableVisualStyles();        Application.Run(new MainConsole());        MainConsole m = new MainConsole();    }    public ref string checkCommands(string command)    {        IP_DataBase ips = new IP_DataBase();        /*checking for ips in the list*/        string[] dump;        if (command.Contains("connect"))        {            dump = command.Split(' ');            for (int i = 0; i < ips.IPS.Length; i++)            {                if (dump[1] == ips.IPS[i])                {                    Connected_IP = dump[1];                    Is_Connected = 1;                    break;                }                else                {                    Connected_IP = "Invalid IP";                    Is_Connected = 0;                }            }        }        else if (command.Contains("quit")) /*disconnect command*/        {            Connected_IP = "Not Connected";            Is_Connected = 0;        }        return ref Connected_IP;    }}我希望 Connected_IP 會(huì)改變。但是相反,變量只是在方法中發(fā)生了變化,我嘗試使用 ref 命令但仍然沒有變化,我該怎么辦?public partial class MainConsole : Form    {        MainGame m = new MainGame();        MainGame j = new MainGame();        private void ConsoleInput2_KeyDown(object sender, KeyEventArgs e)        {            if (e.KeyCode == Keys.Return)            {                Text_IP_Connected.Text = m.checkCommands(ConsoleInput2.Text);                if (m.Is_Connected == 1) vic_sft.Enabled = true;                else vic_sft.Enabled = false;                       }        }
查看完整描述

1 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

在下面的示例中,我在 MainGame 類本身中創(chuàng)建并存儲(chǔ)了一個(gè) MainGame 實(shí)例。因?yàn)檫@是從靜態(tài) Main() 完成的,所以聲明也必須是靜態(tài)的。請(qǐng)注意,如果進(jìn)行了此聲明public,則可以使用語(yǔ)法從任何地方訪問它MainGame.mg(但是,這不是推薦的方法)。


接下來(lái),我們通過該行中的 Constructor 將該 MainGame 實(shí)例傳遞給MainConsole表單Application.Run()。請(qǐng)注意下面發(fā)布的 MainConsole 中的附加構(gòu)造函數(shù)。返回類型中的“ref”checkCommands()已被刪除,因?yàn)榭梢栽?MainConsole 本身中使用傳遞和存儲(chǔ)的對(duì) MainGame 的引用更改該值。


主游戲類:


public class MainGame

{


    public string Connected_IP = " ";

    public short Is_Connected = 0;


    static MainGame mg = null; // instantiated in Main()


    static void Main()

    {

        mg = new MainGame(); // this instance will be worked with throughout the program

        Application.EnableVisualStyles();

        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new MainConsole(mg)); // pass our reference of MainGame to MainConsole

    }


    public string checkCommands(string command) // no "ref" on the return type

    {

        IP_DataBase ips = new IP_DataBase();

        /*checking for ips in the list*/

        string[] dump;

        if (command.Contains("connect"))

        {

            dump = command.Split(' ');

            for (int i = 0; i < ips.IPS.Length; i++)

            {

                if (dump[1] == ips.IPS[i])

                {

                    Connected_IP = dump[1];

                    Is_Connected = 1;

                    break;

                }

                else

                {

                    Connected_IP = "Invalid IP";

                    Is_Connected = 0;

                }

            }

        }

        else if (command.Contains("quit")) /*disconnect command*/

        {

            Connected_IP = "Not Connected";

            Is_Connected = 0;

        }

        return Connected_IP;

    }


}

在這里,在 MainConsole 表單中,我們添加了一個(gè)額外的構(gòu)造函數(shù)來(lái)接收 MainGame 的實(shí)例。有一個(gè)名為mMainGame 類型的字段,但請(qǐng)注意,在這種形式中,我們實(shí)際上沒有使用“new”創(chuàng)建 MainGame 的實(shí)例;我們只使用傳入的實(shí)例。對(duì) MainGame 的引用存儲(chǔ)在m構(gòu)造函數(shù)中,以便它可以在代碼的其他點(diǎn)使用:


public partial class MainConsole : Form

{


    // Note that we are NOT creating an instance of MainGame anywhere in this Form!


    private MainGame m = null; // initially null; will be set in Constructor


    public MainConsole()

    {

        InitializeComponent();

    }


    public MainConsole(MainGame main)

    {

        InitializeComponent();

        this.m = main; // store the reference passed in for later use

    }


    private void ConsoleInput2_KeyDown(object sender, KeyEventArgs e)

    {

        if (e.KeyCode == Keys.Return && ConsoleInput2.Text.Trim().Length > 0)

        {

            // Use the instance of MainGame, "m", that was passed in:

            Text_IP_Connected.Text = m.checkCommands(ConsoleInput2.Text);

            vic_sft.Enabled = (m.Is_Connected == 1);

        }

    }


}


查看完整回答
反對(duì) 回復(fù) 2022-11-21
  • 1 回答
  • 0 關(guān)注
  • 95 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)