簡體   English   中英

新手如何在C#中引發/觸發事件

[英]Newbie how to raise/trigger events in C#

我需要一個litle幫助....我剛剛開始使用C#,我需要在bool值改變時引發一個事件。 我有一個課:

using System;

namespace WOCA
{
    public class Arduino
    {

        public event EventHandler Disconnected;

        **protected virtual void OnDisconnected()
        {
            EventHandler handler = Disconnected;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
        }**

        private bool _isconnected;
        public bool IsConnected
        {
            get 
            {
                 return _isconnected;
            }
        }

        #region Methods
        public void Connect()
        {
            //TODO implement code to connect
            _isconnected = true;
        }
        public void Disconnect()
        {
            //TODO implement code to connect
            _isconnected = false;

        }

        #endregion Methods

    }
}

但是當_isconnected更改值時,如何引發/觸發事件?

它應該很簡單

    public event EventHandler Disconnected;

    protected virtual void OnDisconnected()
    {
        EventHandler handler = Disconnected;
        if (handler != null)
        {
            handler(this, EventArgs.Empty);
        }
    }

    private bool _isconnected;
    public bool IsConnected
    {
        get
        {
            return _isconnected;
        }
        private set
        {
            if (!value && _isConnected)
            {
                OnDisconnected();
            }
            _isconnected = value;
        }
    }

    #region Methods
    public void Connect()
    {
        //TODO implement code to connect
        IsConnected = true;
    }
    public void Disconnect()
    {
        //TODO implement code to connect
        IsConnected = false;

    }

    #endregion Methods

你有所有的代碼,你只需要觸發器......

public void Disconnect()
{
    _isconnected = false;
    OnDisconnected();
}

暫無
暫無

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

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