gpt4 book ai didi

c#属性问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:12 25 4
gpt4 key购买 nike

我需要一些帮助,我不知道如何解决这个问题。

属性的作用是判断函数是否可以运行...

所以我需要的是:

  1. 属性的消费者应该能够确定是否可以执行。
  2. 属性的所有者应该是能够告诉消费者,现在它可以/不能执行(比如事件)。
  3. 它必须有一个简单的语法。

这是我目前所拥有的,但它只实现了第 1、3 点。

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class ExecuteMethodAttribute : Attribute
{
private Func<object, bool> canExecute;
public Func<object, bool> CanExecute
{
get
{
return canExecute;
}
}


public ExecuteMethodAttribute()
{

}

public ExecuteMethodAttribute(Func<object, bool> canExecute)
{
this.canExecute = canExecute;
}
}

最佳答案

属性不适用于此类目的。您使用属性而不是特定实例装饰 Type

如果您需要一种方法来向消费者指定特定方法已准备好执行或无法执行,我会重新考虑您的设计。与其使用属性,不如创建一个自定义类会更合适。

鉴于您的设计,我建议您查看 ICommand interface .这基本上完全符合您的要求。它将一个委托(delegate)封装到一个类中,带有一个“CanExecute”方法,以及一个用于通知“消费者”执行可用性已更改的事件。这将是一个更合适的选择。

关于c#属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2579280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com