C#使用其他代码

时间:2012-01-08 15:21:15

标签: c# class interval-tree

我从这里下载了一个C#区间树集合类课程http://intervaltree.codeplex.com/SourceControl/list/changesets - >右手边 - >下载。

但是我无法在我的Microsoft Visual C#2010 Express(也运行C#XNA)上打开整个项目,因为

  

此版本的应用程序不支持解决方案文件夹

另外,我只想在自己的seprate项目中单独使用该类。

我尝试将三个重要的看似文件Interval.csIntervalNode.csIntervalTree.cs复制到我的项目中,但这会产生编译错误

  

没有处理此文件类型的导入程序

我还尝试将这三个文件的内容复制并粘贴到我的项目中,将它们封装到自己的命名空间中,并且有很多代码。我不得不稍微重新安排一些使用,但遇到了可能需要PowerCollections .dll和.pcb文件作为using Wintellect.PowerCollections;导致的问题

  

找不到类型或命名空间名称'Wintellect'(您是否缺少using指令或程序集引用?)

我不知道如何继续,或者我在如何让这个班级发挥作用方面做得正确。

4 个答案:

答案 0 :(得分:13)

将库添加到您的解决方案

将IntervalTreeLib目录复制到解决方案目录中。然后,右键单击您的解决方案,并添加现有项目。将其指向IntervalTreeLib中的IntervalTreeLib.csproj,然后单击“打开”。这应该将IntervalTreeLib项目添加到您的解决方案中。

Add Existing Project Screenshot

您的项目中添加对库的引用

然后,在您的项目中,添加对IntervalTreeLib项目的引用:   - 右键单击​​References文件夹,然后单击Add Reference。单击Projects选项卡,然后选择IntervalTreeLib。

Add Reference Screenshot

Select Project Reference Screenshot

使用代码中的类

要在源代码中使用库中的类,您需要添加:

using IntervalTreeLib;

void Foo() {
    IntervalTree<int, int> tree = new ...
}

或者,请以全名引用它们:

IntervalTreeLib.IntervalTree<int, int> tree = new ...

答案 1 :(得分:4)

如果您希望能够完整地打开项目,请打开IntervalTreeLib.csproj文件(或在当前解决方案中添加现有项目(您可以右键单击解决方案)并选择IntervalTreeLib.csproj )。如果您只想获取项目中的代码文件,请确保您还获取PowerCollections.dll文件(我看到它与代码文件位于同一文件夹中),否则您的代码将无法编译(如您所发现的那样) )。您需要添加对它的引用,并在使用此库的代码文件顶部包含所需的using语句(或使用带有命名空间的完全限定名称)。

using IntervalTreeLib;

var myObj = new IntervalTreeLib.[WhateverClass](...);

此外,请确保您阅读license.txt文件。如果您使用代码,则可能需要包含它。给予应有的信用。

更新:

如果测试项目导致您出现问题,只需打开库项目即可。理想情况下,您可以打开并编译它,将直接生成的输出DLL文件添加到您的解决方案中。除非您计划更改库源代码本身,否则这是理想的。

答案 2 :(得分:2)

将该库添加到要使用的项目的引用中。

enter image description here

答案 3 :(得分:0)

由于讨论了您可以构建Intervallib.dll,我们将讨论您应该如何在项目中使用dll。

现在在您的项目中,右键单击引用部分并将dll intervallib.dll添加到您的引用中。在您的game.cs文件中,将名称空间引用为 - using IntervalTreeLib;

然后你应该将dll powercollections.dll复制到proj目录的bin目录中。

你应该复制这个dll因为在IntervalTreeLib.dll中使用了dll的间接链接

按照这些步骤,我能够执行这个项目。