通用C#BST树,选择类型

时间:2018-02-25 04:58:15

标签: c# generics types binary-search-tree

所以我在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种不同类型的交换机案例。我想从每个switch case调用一个函数,传入给定的类型。然后该函数将拥有所有代码来创建BST,为其获取输入,并显示有关它的信息,并在此过程中使用给定的类型。

我的函数的代码大约是40行,我显然只想要有1个函数来执行此操作,这将根据类型而改变,而不是复制和粘贴40行,用于14种不同的情况!!!!! < / p>

1 个答案:

答案 0 :(得分:1)

使用所选类型将其设为通用函数。像

这样的东西
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;    
}