小编Kai*_*che的帖子

通过接口使用静态类?

想象一下,您需要从整个应用程序中访问一些方法.静态类是理想的.

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

c# static interface class

6
推荐指数
1
解决办法
6136
查看次数

一个DLL,具有两个应用程序的两个实现

我有一个带有一些类和方法的DLL.还有两个应用程序使用它.一个管理应用程序几乎需要每个方法,而客户端应用程序只需要部分内容.但是它们的大部分都被它们使用.现在我想用管理员的东西和一个与客户端的东西制作一个DLL.

  1. 每次复制DLL并手动编辑都很可怕.
  2. 也许条件编译可以帮助我,但我不知道如何使用三个项目在一个解决方案中使用不同的编码两次编译DLL.

对于这个问题,是否有比使用两个不同的DLL并在每次更改时手动编辑更好的方法?

c# dll

1
推荐指数
1
解决办法
90
查看次数

LINQ在哪里不接受1或2个参数

以下带有布尔参数的代码运行良好:

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)

可能导致这个问题?

c# linq

1
推荐指数
1
解决办法
103
查看次数

标签 统计

c# ×3

class ×1

dll ×1

interface ×1

linq ×1

static ×1