WPF--关于Action事件小结

本文介绍了WPF中的Action事件,包括如何在类实例和静态上下文中使用,以及如何建立订阅关系。通过MyClass的示例展示了触发事件和处理事件的方法。

WPF--关于Action事件小结

1.需要类实例去调用事件建立订阅关系

        public event Action<int, object> MaintainEvent;

        new GP1().MaintainEvent += NormalCmdAction;

2.static用处--在不便实例的时候,可以直接由类调用

        public static event Action<int, object> MaintainEvent;

        GP1.MaintainEvent += NormalCmdAction;

小结:事件是自己的,好方法是别人的,在别人家里签下订阅关系,在自己这里调用或者其他处调用

补充:Action基础用法

using System;  
  
namespace ActionExample  
{  
    public class MyClass  
    {  
        // 定义一个具有两个参数的Action事件  
        public event Action<int, string> MyEvent;  
  
        // 触发事件的方法  
        public void TriggerEvent(int arg1, string arg2)  
        {  
            MyEvent?.Invoke(arg1, arg2);  
        }  
    }  
  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            MyClass obj = new MyClass();  
  
            // 订阅事件处理程序  
            obj.MyEvent += HandleEvent;  
  
            // 触发事件  
            obj.TriggerEvent(100, "Hello");  
        }  
  
        // 处理事件的方法  
        private static void HandleEvent(int arg1, string arg2)  
        {  
            Console.WriteLine($"事件被触发了,参数1:{arg1}, 参数2:{arg2}");  
        }  
    }  
}

在上面的示例中,MyClass类定义了一个具有两个参数(intstring类型)的Action事件MyEvent,并在TriggerEvent方法中触发该事件。在Main方法中,我们创建了一个MyClass的实例,并使用+=运算符将HandleEvent方法订阅到MyEvent事件上。最后,我们调用TriggerEvent方法来触发事件,并传递两个参数。当事件被触发时,HandleEvent方法将被调用,输出事件的参数值。

20241104补充--C# 中,事件不能直接调用,它们只能通过注册的事件处理程序进行处理。

关于错误提示“事件 AccessUserEvent 只能出现 += 或 -= 的左边”通常是因为你在尝试直接调用事件(Invoke),而不是通过事件订阅来触发它。在 C# 中,事件不能直接调用,它们只能通过注册的事件处理程序进行处理。

例:

//更新前台界面用户信息显示 GloAccessHelper.AccessUserEvent?.Invoke(GloAccessHelper.userInfo); 报错事件AccessUserEvent只能出现+=或-=的左边是什么原因

1.正确使用方法调用
        // 触发事件的方法  
        public void TriggerEvent(int arg1, string arg2)  
        {  
            MyEvent?.Invoke(arg1, arg2);  
        }  
TriggerEvent(1,"1")

2.而不是直接使用事件去调用--错误
MyEvent?.Invoke(2,"2");  //调用时2
内容概要:本文档为《400_IB Specification Vol 2-Release-2.0-Final-2025-07-31.pdf》,主要描述了InfiniBand架构2.0版本的物理层规范。文档详细规定了链路初始化、配置与训练流程,包括但不限于传输序列(TS1、TS2、TS3)、链路去偏斜、波特率、前向纠错(FEC)支持、链路速度协商及扩展速度选项等。此外,还介绍了链路状态机的不同状态(如禁用、轮询、配置等),以及各状态下应遵循的规则和命令。针对不同数据速率(从SDR到XDR)的链路格式化规则也有详细说明,确保数据包格式和控制符号在多条物理通道上的一致性和正确性。文档还涵盖了链路性能监控和错误检测机制。适用人群:适用于从事网络硬件设计、开发及维护的技术人员,尤其是那些需要深入了解InfiniBand物理层细节的专业人士。使用场景及目标:① 设计和实现支持多种数据速率和编码方式的InfiniBand设备;② 开发链路初始化和训练算法,确保链路两端设备能够正确配置并优化通信质量;③ 实现链路性能监控和错误检测,提高系统的可靠性和稳定性。其他说明:本文档属于InfiniBand贸易协会所有,为专有信息,仅供内部参考和技术交流使用。文档内容详尽,对于理解和实施InfiniBand接口具有重要指导意义。读者应结合相关背景资料进行学习,以确保正确理解和应用规范中的各项技术要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值