如何使我的类上的自定义事件消费成为可选?

2024-03-17

当我注释掉fm.OnLoaded下面一行,它给我一个错误,OnLoaded 为空。

如何使我的类的调用者可以选择是否像 .NET 类/事件一样使用该事件?

using System;
using System.Windows;

namespace TestEventLoaded8282
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            FileManager fm = new FileManager();
            //fm.OnLoaded += new FileManager.LoadedHandler(fm_OnLoaded);
            fm.Load();
        }

        void fm_OnLoaded(object obj, FileManagerArgs args)
        {
            Console.WriteLine("the file manager is loaded: " + args.Message); 
        }
    }

    public class FileManager
    {
        public string Name { get; set; }

        public delegate void LoadedHandler(object obj, FileManagerArgs args);
        public event LoadedHandler OnLoaded;

        public FileManager()
        {}

        public void Load()
        {
            Name = "this is the test file manager";
            OnLoaded(this, new FileManagerArgs("no errors"));
        }
    }

    public class FileManagerArgs : EventArgs
    {
        public string Message { get; set; }

        public FileManagerArgs(string message)
        {
            Message = message;
        }
    }
}

if (OnLoaded != null) {
    OnLoaded(this, new FileManagerArgs("no errors"));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使我的类上的自定义事件消费成为可选? 的相关文章

随机推荐

  • 为插入语句生成uuid

    我想像这样生成uuide58ed763 928c 4155 bee9 fdbaaadc15f3当数据插入表中时 CREATE TABLE IF NOT EXISTS bin lists id uuid NOT NULL bin intege
  • 如何将 astro 组件渲染为 HTML 字符串?

    我希望能够在 Astro 中拥有一个动态页面来呈现 Astro 组件 我深入研究了文档和代码 但找不到像下面这样的函数 Astro render 理想情况下 我可以将属性传递给它 我正在寻找类似的东西react renderToString
  • Android 上有哪些角色可用?

    我想在我的 Android 应用程序中显示一些特殊的 Unicode 字符 这些字符未在 droidfonts com 上列出 但它们在模拟器和我的手机上正确显示 但想确定是否所有 Android 平台都支持它们 它记录在某处吗 谢谢 ED
  • 将 Flutter Row 的子级拉伸到最大*自然*高度

    override Widget build BuildContext context return Scaffold appBar AppBar title Text title body ListView children
  • Scrapy 不会抓取所有页面

    这是我的工作代码 from scrapy item import Item Field class Test2Item Item title Field from scrapy http import Request from scrapy
  • 如果 kNN 没有训练阶段,当我们将 .fit() 方法应用于 Scikit-learn 中的 kNN 模型时会发生什么?

    由于 kNN 在 RAM 级别处理训练和预测 并且不需要显式的训练过程 那么当拟合 knn 模型时到底会发生什么 我认为这一步与训练模型有关 谢谢 这是如果我跳过拟合步骤将会得到的错误 NotFittedError This KNeighb
  • 如何在 Spring 中管理对象池?

    据我了解 在 Spring 中 所有对象默认都被视为单例 如果 singleton 设置为 false 则每个请求都会提供一个新对象 但是如果我想池化对象怎么办 假设设置范围从最少 1 到最多 10 个实例 使用 Spring 可以吗 池化
  • 我的 AndroidManifest.xml 中声明的活动的 ActivityNotFoundException

    我有一个启动的 Android 应用程序 大部分时间都运行良好 然而 在大约 1000 多次运行中 有 1 次我收到 android content ActivityNotFoundException 无法找到显式活动类异常 该活动已在我的
  • 将所有“\n”替换为“,”

    我有一个文本区域 我想将其值中的 n 替换为 var valuetxtarr txtarr val var valuetxtarrs valuetxtarr replace n g alert valuetxtarrs 但它不起作用 为什么
  • 是否可以在 PYTHON 的一个命令中对多个字符串使用 .count ?

    我想知道是否可以使用 count 函数对多个字符串进行计数 string abcdefg string count or 当我使用 or 命令时 它只给出 1 个变量的计数 但我想要总数 如何将它组合起来 使其计入 2 个字符串 而不将其拆
  • 自定义 Lint 检查未运行

    我目前正在尝试编写我正在处理的自定义 lint 检查 我创建了一个单独的 java 项目并将其作为 jar 包含在内 我的问题是 无论如何 在分析我的代码库时 似乎我的自定义检查没有运行 我已经包含了一个注册表 class MyIssueR
  • 检测堆栈溢出

    操作系统如何检测用户空间程序的堆栈溢出 然后将 SIGTERM 或 SIGSEGV 发送到这些用户空间程序 防护页 当操作系统为程序创建堆栈时 它将分配比指定的多一点的空间 内存按页分配 通常每页 4KB 并且额外的页将进行设置 以便任何访
  • 从 CGImage 获取像素格式

    我非常了解位图布局和像素格式主题 但在处理通过加载的 png jpeg 图像时遇到问题NSImage 我无法弄清楚我得到的是预期行为还是错误 let nsImage NSImage NSImage byReferencingURL let
  • Pylint 无法与 OS X 上的 Emacs GUI 一起使用;从命令行工作

    从命令行运行时 emacs filename py flymake 和 pylint 完美配合 错误被正确突出显示 尽管我无法通过工具提示悬停来获取错误详细信息 因为它是文本模式 当从 GUI Carbon Emacs 运行时 Flymak
  • 如何防止TouchEvent滚动

    我有一个自定义视图 其中具有触摸事件 滑动等 的功能 现在 这个自定义视图可能会在一个ScrollableLayout 那么问题是 当用户在我的自定义视图内滑动时 父级 可滚动布局 也将处理滑动手势 因此它会滚动 但它不应该滚动 我需要类似
  • 如何一次在目录中的多个文本文件中搜索文本字符串

    我有一个列表框 其中包含一定数量的项目 对于列表框中的每个项目 文件目录中都存在一个相应的文本文件 我需要在每个文本文件 基于列表框中的内容 中搜索人名 每个文本文件可能包含名称 也可能不包含名称 然后我想要返回包含该名称的文本文件 我尝试
  • 检测 powershell 中的注销和登录

    如何使用powershell检测用户是否从windows系统 最好是win7 vista或XP 登录或注销 我想注册每次登录和注销机器的日期和时间 先感谢您 您可以从事件日志中获取此信息 Get EventLog System Source
  • 签署程序集 - 基础知识

    签署集会意味着什么 为什么这样做 最简单的签名方法是什么 snk 文件有什么用 其他两个答案都很好 但还有一点 证书 签名和 强名称 签名很容易混淆 正如 Stefan Steinegger 所说 强名称签名的目的是 让您的客户确定他们认为
  • 如何使 Xamarin.Mac 应用程序“登录时打开”?

    我有一个 Xamarin Mac 应用程序需要在登录时自动打开 如何让我的应用程序获得此设置而无需手动单击它 我可以给你一个如何以编程方式完成的提示 对于这种方法 您需要通过以下方式调用本机库DllImport 以下代码将让您了解如何继续
  • 如何使我的类上的自定义事件消费成为可选?

    当我注释掉fm OnLoaded下面一行 它给我一个错误 OnLoaded 为空 如何使我的类的调用者可以选择是否像 NET 类 事件一样使用该事件 using System using System Windows namespace T