C# 控制台游戏-如何返回“;var";

C# 控制台游戏-如何返回“;var";,c#,console,C#,Console,我的游戏机需要帮助。 我和角斗士一起在“竞技场”工作。 在游戏开始时,你将选择你的职业(战争、猎人等)(每个职业都有自己的class.cs) 但是在代码中,我有一个显示“menu”的方法,在这个菜单上,你选择了你的类,所以我需要返回这个特定的class.cs。如果你知道我的意思。 所以我想问我该怎么做 public static "something" Menu(int cislo) { bool starthry = false;

我的游戏机需要帮助。 我和角斗士一起在“竞技场”工作。 在游戏开始时,你将选择你的职业(战争、猎人等)(每个职业都有自己的class.cs) 但是在代码中,我有一个显示“menu”的方法,在这个菜单上,你选择了你的类,所以我需要返回这个特定的class.cs。如果你知道我的意思。 所以我想问我该怎么做

 public static "something" Menu(int cislo)
    {
        bool starthry = false;
            switch (cislo)
            {
                case 1:
                   
                    if (int.TryParse(Console.ReadLine(), out int vyber))
                    {
                        string jmeno = Console.ReadLine();
                        switch (vyber)
                        {
                            case 1:
                                Bojovnik bojovnik = new Bojovnik(jmeno);
                                break;
                            /*case 2:
                                Lukostrelec lukostrelec = new Lukostrelec(jmeno);
                                break;
                            case 3:
                                Assassin assassin = new Assassin(jmeno);
                                break;
                            case 4:
                                Mag mag = new Mag(jmeno);
                                break;
                            case 5:
                                Nekromant nekromant = new Nekromant(jmeno);
                                break;
                            case 6:
                                Druid druid = new Druid(jmeno);
                                break;*/
                            default:
                                break;
                        }

                        starthry = true;
                    }
                    break;
                case 2:
                    FileStream fs = new FileStream(@"../../Postava.dat", FileMode.CreateNew, FileAccess.Write);
                    StreamWriter sw = new StreamWriter(fs);
                    sw.Write(postava.Info());
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    if (Console.ReadLine() == "Y")
                    {
                        string postavy = @"C:\Users\Dominik\source\repos\Pokus_o_hru_LOL\Pokus_o_hru_LOL\bin\Debug\netcoreapp3.1\Postavy.docx";
                        Process proces = new Process();
                        proces.StartInfo = new ProcessStartInfo()
                        {
                            UseShellExecute = true,
                            FileName = postavy
                        };
                        proces.Start();
                        proces.WaitForExit();
                    }
                    break;
                case 6:
                    Environment.Exit(0);
                    break;
                default:
                    break;
            }

            //here i need to return my character
        }


为此,您应该使用接口。创建一个IClass,让所有类扩展它并返回一个IClass。无法使方法返回类型,因为它是语法糖。

为此,应使用接口。创建一个IClass,让所有类扩展它并返回一个IClass。您不能让方法返回类型,因为它是语法糖。

您不能返回
var
,因为
var
是语法糖。当
var a=“hello”时,
var
成为其实际类型(即
string
)。您必须将该方法声明为返回所有可能返回值中常见的类型,无论是接口、基类还是
object
(如果没有其他适合的话)。您的意思是我必须为每个可能的类执行方法“菜单”?您不能返回
var
,因为
var
是同步的。当
var a=“hello”时,
var
成为其实际类型(即
string
)。您必须将该方法声明为返回所有可能返回值中的一种常见类型,无论是接口、基类还是
object
(如果没有其他合适的话)。您的意思是我必须为每个可能的类执行方法“菜单”吗?我可以问什么是IClass吗?“你的意思是什么让所有的类都扩展?”多米尼克·科卢奇读了一些关于接口的文章,如果我是对的,你的意思是我应该像接口类和一个类“角色”那样做类(战士、法师…)?你有分歧吗?如果是这样的话,在那里向你解释就容易多了。是的,我有点不和谐。我能问一下什么是课堂吗?“你的意思是什么让所有的类都扩展?”多米尼克·科卢奇读了一些关于接口的文章,如果我是对的,你的意思是我应该像接口类和一个类“角色”那样做类(战士、法师…)?你有分歧吗?如果是这样的话,在那里向你解释就容易多了是的,我有分歧