想象一下,您需要从整个应用程序中访问一些方法.静态类是理想的.
public static class MyStaticClass
{
public static void MyMethod()
{
// Do Something here...
}
}
Run Code Online (Sandbox Code Playgroud)
但也许将来我会在另一个静态类中添加静态方法的第二个实现.
public static class MyStaticClass2
{
public static void MyMethod()
{
// Do Something here...
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法改变我的其他代码中使用,而不改变从呼叫静态类MyStaticClass.MeMethod();来MyStaticClass2.MyMethod();?
我想到了一个界面,但我不知道如何实现这个......如果我说疯了就说出来,我只会改变电话:D
我有一个带有一些类和方法的DLL.还有两个应用程序使用它.一个管理应用程序几乎需要每个方法,而客户端应用程序只需要部分内容.但是它们的大部分都被它们使用.现在我想用管理员的东西和一个与客户端的东西制作一个DLL.
对于这个问题,是否有比使用两个不同的DLL并在每次更改时手动编辑更好的方法?
以下带有布尔参数的代码运行良好:
public List<T> SearchByStatus(bool status, List<T> list)
{
return (List<T>)list.Where(_item => _item.Executed == status);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想使用这样的东西
public List<T> SearchByCodeType(ECodes codeType, List<T> list)
{
return (List<T>)list.Where(_item => _item.CodeType == codeType);
}
Run Code Online (Sandbox Code Playgroud)
,IDE抛出一个错误Func<T, int, bool>,说不接受1个参数.我研究了一下,发现了这个例子.如果我现在添加一个seond参数,让我们说
public List<T> SearchByCodeType(ECodes codeType, List<T> list)
{
return (List<T>)list.Where((_item, _index) => _item.CodeType == codeType);
}
Run Code Online (Sandbox Code Playgroud)
它说Func<T, bool>不要接受2个参数.
消息本身是正确的,但我不明白为什么它假设我想在第一种情况下使用Where的重载版本而在第二种情况下使用非重载...我做错了什么?
PS:使用的ECodes类型定义为
public enum ECodes : int
{
....
}
Run Code Online (Sandbox Code Playgroud)
可能导致这个问题?