【问题标题】:How to access the Methods inside a class of a Project DLL in C#如何在 C# 中访问项目 DLL 类中的方法
【发布时间】:2017-02-28 18:56:15
【问题描述】:

我一直在学习 C#,并试图在单独的解决方案中创建特定的逻辑。

在这个场景中,我创建了一个包含几个类的项目,每个类都有特定过程的特定方法。我为这个项目创建了一个 DLL,我们称之为“LogicLibrary.DLL”

现在,我创建了另一个项目,在其中添加了对“LogicLibrary.DLL”的引用。

现在,我的问题是我不确定应该如何访问 DLL 类中的方法。

假设 LogicLibrary.DLL 有一个类“Calculator.cs”,该类又具有方法Add(int a, int b)Sub(int a, int b)Mul(int a, int b)Div(int a, int b)

在新项目中,我如何访问上述任何方法。有什么特别的方法可以为 DLL 中的类创建对象吗?

希望得到您的帮助!...谢谢!

【问题讨论】:

  • Calculator 是静态类吗?如果没有,您需要实例化该类或从它继承。
  • 您不应创建单独的解决方案。确保您的访问修饰符(公共、内部、私有..)设置正确。
  • 请记住,直接从外部解决方案引用 DLL 可能是个坏主意。只要有可能,如果您需要从解决方案外部引用代码,您应该创建 NuGet 包并将它们存储在 NuGet 服务器中。这允许您管理一个解决方案与另一个解决方案之间的版本依赖关系。

标签: c# asp.net class methods dll


【解决方案1】:

您已导入库。现在你需要告诉编译器如何找到你打算使用的类。

所有库都有一个默认命名空间。您可以通过右键单击您的项目并选择属性来查看它。

您的类定义还可以指示命名空间。例如:

namespace LogicLibrary
{
     //Class(es) here
}

因此,如果您通过添加引用来导入此库,则使用该类的代码必须告诉编译器在哪里可以找到它。您可以通过以下几种方式做到这一点:

您可以导入命名空间,以便编译器自动应用它:

using LogicLibrary;

您还可以完全限定您打算使用的类的名称:

var calculator = new LogicLibrary.Calculator();

任何一种方式都有效。命名空间只不过是逻辑容器,旨在帮助您组织代码以避免冲突。

【讨论】:

    【解决方案2】:

    如果你已经在refrences中添加了LogicLibrary.dll,你只需要把它放到usings中即可。

    using LogicLibrary;
    

    【讨论】:

      【解决方案3】:

      我在这个项目上工作,然后发现我可以像这样创建一个类的对象:

      LogicLibrary.CalculatorcalculatorObject = new LogicLibrary.Calculator(); int sum =calculatorObject.Add(1,3);

      【讨论】:

        猜你喜欢
        • 2010-12-23
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-20
        相关资源
        最近更新 更多