C#结构 – 从外部库访问类

关于构建我的应用程序的正确方法,我有一个问题。 我是C#的初学者,所以如果我有一些基础缺失的借口。 我在网上看了(不仅是stackoverflow),但没有找到任何答案,所以也许这只是因为我做错了什么?

我有一个项目,其中有几个类来定义我的对象。

Object1.class.cs

Object2.class.cs ……

现在,对于某些函数,我创建了类库(.dll文件)来外部化代码。 我的想法是,如果我需要进行更新,我只需要替换.dll文件,而不是所有代码。

但是当我想将对象发送到该类时遇到问题,我认为因为它们是解决方案的外部因素?

所以我开始怀疑我是否正确地做到了。

1)有没有办法将项目中的对象发送到我单独创建的类?

2)以这种方式工作是一个好主意吗? 我的意思是,我当然可以在我的项目中添加库,但在这种情况下,我将不会分离.dll文件,并且所有文件都在一个.exe文件中。

3)当我需要测试我的课程时,我总是需要关闭我的项目,打开课程进行编辑,然后回到我的项目进行测试。 有更简单的方法吗?

提前感谢您的建议

编辑2。

Simone Cifani perfercly回答了我的问题:

1)课程必须外化

2)在我的外部库中添加对必要类的引用

3)在我的主项目中添加对每个类和外部库的引用

由于我不知道如何使用Interfaces,我会在没有它的情况下使用它,但我认为即使没有它也会很好。

外部化部分代码的一种非常常见的方法是使用接口。

一个简单的例子是:

//CalculatorInterface.dll namespace Calculator.Interface { interface ICalculator { int DoCalculus(List list); } } //CalculatorImplementation_1.dll // Add a reference to CalculatorInterface.dll namespace Calculator.Implementation { using Calculator.Interface; class CalculatorImplementation_1 : ICalculator { public int DoCalculus(List list) { int result = 0; foreach (Object obj in list) { if (obj is int) { result += (int)obj; } } return result; } } } //Calculator.dll // Add a reference to CalculatorInterface.dll // Add a reference to CalculatorImplementation_1.dll (or dynamically load it) namespace Calculator { using Calculator.Interface; using Calculator.Implementation; class MyCalculator { void CalculateSomething() { List list = new List(); list.Add(1); list.Add(2); list.Add("SomeString"); ICalculator calculator = new CalculatorImplementation_1(); int result = calculator.DoCalculus(list); Console.Write(result); } } }