为什么类对象不能访问类中定义的委托

本文关键字:定义 访问 对象 不能 为什么 | 更新日期: 2024-09-25 13:45:40

我有一些银行账户,如下所示。

我的问题是使用BankAccount类的实例,我可以访问类中声明的ActionDelegate委托,但访问类中定义的非BalanceChangedEventHandler委托?

public class BankAccount
{
    public Action<int> ActionDelegate;
    public delegate void BalanceChangedEventHandler(object sender, BalanceChangedEventArgs args);
    public event BalanceChangedEventHandler BalanceChanged;
}

为什么类对象不能访问类中定义的委托

(强调矿)

使用BankAccount类的实例,我可以访问[…],但访问该类中定义的not BalanceChangedEventHandler委托?

委托声明没有状态。因此,您不通过实例访问它们,而是像嵌套类声明一样访问它们:

 myBankAccount.BalanceChangedEventHandler // won't work
 BankAccount.BalanceChangedEventHandler   // works

您可以通过类名访问委托,而不是该类的实例

所以你必须写

BankAccount.BalanceChangedEventHandler