在C#中组织2个dll的最佳方法

时间:2013-11-05 15:20:54

标签: c#

我有2个DLL,它们有90%相同的方法,每个DLL处理不同的外部卡。组织我的代码的最佳方法是什么,所以我可以编写更少的代码: 例如:

Call_Method_A(1); //1 is the dll/card number

public void Call_Method_A(int cardNumber)
{
    if(cardNumber==1)
    //call function from dll 1
    else
    //call functio from dll 2
}

2 个答案:

答案 0 :(得分:2)

使用多态来解决这个问题。您可以创建包含类共享方法的接口。让类实现此接口。 然后,您可以创建该接口的变量,并将其中一个类分配给该变量。之后,您可以使用该变量访问该类并调用方法。
这样,您就可以避免使用许多条件表达式,例如

If (cardNumber == 1) // ...

答案 1 :(得分:1)

你的提议很好但是如果那时候流量控制可能会使你的方法复杂化。

如果您能够通过提取公共代码片段来重构代码,那么您就可以为每张卡片制作单独的方法。

这种方式可以重用您的代码并使方法尽可能简单。

您可以在同一个dll或单独的dll中执行此操作并引用常用的。