首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICommand _canExecute问题

ICommand _canExecute问题
EN

Stack Overflow用户
提问于 2010-02-08 01:47:18
回答 1查看 407关注 0票数 0

我有以下代码,但它无法编译,因为编译器无法确定我的CanExecute方法的返回类型。有没有人能告诉我哪里出了问题?

代码语言:javascript
复制
class ViewCommand : ICommand
    {
        #region ICommand Members

        public delegate Predicate<object> _canExecute(object param);
        private ICommand _Execute;

        _canExecute exe;

        public bool CanExecute(object parameter)
        {
            return exe == null ? true : exe(parameter); // <-- Error no implicit conversion between Predicate<object> and bool
        }

... // more code
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-08 01:52:17

ICommand接口将CanExecute声明为一个接受参数并返回布尔值的函数。

_canExecute接受一个参数并返回一个Predicate<object>

调用该函数的方法是将参数传递给exe的返回值

代码语言:javascript
复制
exe(parameter)(parameter);

但我怀疑这是你的本意。

我认为您应该将exe声明为谓词,并跳过委托声明。

代码语言:javascript
复制
private Predicate<object> exe;

这就是我认为你想要的样子:

代码语言:javascript
复制
class ViewCommand : ICommand
    {
        #region ICommand Members

        private ICommand _Execute;

        Predicate<object> exe;

        public bool CanExecute(object parameter)
        {
            return exe == null ? true : exe(parameter); // <-- Error no implicit conversion between Predicate<object> and bool
        }

... // more code
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2217626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档