gpt4 book ai didi

c# - 接口(interface)上没有静态方法的解决方法或替代方法

转载 作者:行者123 更新时间:2023-11-30 16:32:53 25 4
gpt4 key购买 nike

我正在我的应用程序中实现一些简单的搜索,搜索将在几个不同的对象类型(客户、约会、事件等)上进行。我正在尝试创建一个具有可搜索类型的界面。我想做的是这样的:

public interface ISearchable
{
// Contains the 'at a glance' info from this object
// to show in the search results UI
string SearchDisplay { get; }

// Constructs the various ORM Criteria objects for searching the through
// the numerous fields on the object, excluding ones we don't want values
// from then calls that against the ORM and returns the results
static IEnumerable<ISearchable> Search(string searchFor);
}

我已经在我的一个域模型对象上具体实现了它,但我想将它扩展到其他对象。

问题很明显:接口(interface)上不能有静态方法。是否有另一种规定的方法来完成我正在寻找的东西,或者是否有解决方法?

最佳答案

接口(interface)实际上指定了一个对象的行为,而不是一个类。在这种情况下,我认为一种解决方案是将其分为两个接口(interface):

public interface ISearchDisplayable
{
// Contains the 'at a glance' info from this object
// to show in the search results UI
string SearchDisplay { get; }
}

public interface ISearchProvider
{
// Constructs the various ORM Criteria objects for searching the through
// the numerous fields on the object, excluding ones we don't want values
// from then calls that against the ORM and returns the results
IEnumerable<ISearchDisplayable> Search(string searchFor);
}

ISearchProvider 的实例是一个执行实际搜索的对象,而 ISearchDisplayable 对象知道如何在搜索结果屏幕上显示自己。

关于c# - 接口(interface)上没有静态方法的解决方法或替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680884/

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