Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 泛型C BST树,选择类型_C#_Generics_Types_Binary Search Tree - Fatal编程技术网

C# 泛型C BST树,选择类型

C# 泛型C BST树,选择类型,c#,generics,types,binary-search-tree,C#,Generics,Types,Binary Search Tree,所以我用C语言创建了一个通用的BST,我已经测试过了,效果很好。我想完成一个程序,要求用户输入他们想要使用的树的类型,然后它将使用我的泛型树创建一个该类型的树,要求他们输入,并显示有关它的信息。这就是我想做的: string userChoice = Console.ReadLine(); switch(userChoice) { case "bool": functionToCreateB

所以我用C语言创建了一个通用的BST,我已经测试过了,效果很好。我想完成一个程序,要求用户输入他们想要使用的树的类型,然后它将使用我的泛型树创建一个该类型的树,要求他们输入,并显示有关它的信息。这就是我想做的:

        string userChoice = Console.ReadLine();

        switch(userChoice)
        {
            case "bool":
                functionToCreateBST(userChoice);
                break;
            default:
                Console.WriteLine("Input did not match any given type!");
                break;
        }
该函数将包含以下代码:

BSTtree<userChoice> test = new BSTtree<userChoice>();
我该怎么做?我将列出14个不同类型的开关箱。我想从每个开关案例中调用一个函数,传入给定的类型。然后,函数将拥有创建BST的所有代码,为它获取输入,显示有关它的信息,并在过程中使用给定的类型


我的函数代码大约是40行,我显然只想有一个函数来做这件事,这将根据类型而改变,而不是复制和粘贴40行14种不同的情况

使用所选类型使其成为通用函数。差不多

void functionToCreateBST<T>()
{
   BSTtree<T> test = new BSTtree<T>();
   // ...
}


switch(userChoice)
{
   case "bool":
      functionToCreateBST<bool>(userChoice);
      break;
   default:
      Console.WriteLine("Input did not match any given type!");
      break;    
}

太好了,我仍然习惯于泛型…我想简单的修复。谢谢如果你知道,你知道为什么我必须为我的函数实现IComparable吗?例如,如果我要将函数中的T类型与CompareTo进行比较,我想我只需要这样做。很抱歉,我需要查看您的代码、您收到的消息以及在哪一行。