简体   繁体   中英

How to use referenced c# dll code in a VS C# console application

So I have two dlls, Algorithms.dll and Data_Structures.dll (I made these from projects I found on GitHub). Using the browse feature I have managed to add both of the DLL files as references to my Visual Studio 2017 console project. The problem is I can't do anything else with them. Whenever I try to reference something within either file, it simply cannot be found. The only thing that is recognized is the namespace, but nothing inside of that.

What do I need to do to get VS to find the classes these DLLs contain so I can use them? I am aware I need to use Algorithms.Sorting for the example but I can't call anything so I used this as an example.

PS If you need more info, please ask. I'm not sure what's relevant to this issue.

EDIT: Ok, it was misleading to have that kind of example. Corrected but please read the question.

EDIT: I tried this on Monodevelop and get the same issue. Maybe it's not the IDE that's the problem?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Algorithms.Sorting; // Error, Sorting cannot be found, and neither can the file container Sorting
using Data_Structures; //Perfectly ok, can find the namespace

namespace CS_HW2_Testing_App
{
    class Program
    {
        static void Main(string[] args)
        {
           // I'd like to call MergeSort and so forth here. What am I missing?!
        }
    }
}

Here's the top piece of the file containing MergeSort if it helps

using System;
using System.Collections.Generic;

using Algorithms.Common;

namespace Algorithms.Sorting
{
    public static class MergeSorter
    {
        //
        // Public merge-sort API
        public static List<T> MergeSort<T>(this List<T> collection, Comparer<T> comparer = null)
        {
            comparer = comparer ?? Comparer<T>.Default;

            return InternalMergeSort(collection, 0, collection.Count - 1, comparer);
        }
...

In the first code block, you're importing the wrong namespace: using Algorithms.MergeSort should be using Algorithms.Sorting . Then you can use MergeSorter.MergeSort<T>(...) in your code!

You need to reference the namespace not the class.

using Algorithms.Sorting; //instead of using Algorithms.MergeSort;

Plus make sure the classes are public

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM