首页 > 解决方案 > 尝试打印覆盖的 ToString() 方法时,C# 无法从“方法组”转换为“布尔”

问题描述

我将尽量保持简短和简单。我创建了一个类似学生、科目和班级的列表。学生可以上课,科目可以分配给学生等。此代码有效并且没有问题,但我认为它可能会为您解决一些问题,所以我添加了它。

话说回来...

我正在尝试测试是否可以使用覆盖 ToString 方法打印代码。问题是我得到了错误:can not convert from 'method group' to 'bool',即使我告诉该方法返回一个字符串。

有谁知道这可能是什么原因?

代码(供参考)

    class Program
{

    static void Main(string[] args)
    {
        Console.WriteLine(Lists.ToString);
    }
}

我想保持 Program 类有点干净,所以我把原来在那里的代码放到了另一个类中。我还注意到,由于某种原因,tostring 覆盖在那里不起作用。

    class Lists
{
    static List<Klas> Klassenlijst = new List<Klas>()
    {
        //new classes get created
        new Klas("KL0001", "AO1-A", new List<Student>()),                           //klas [0]
        new Klas("KL0002", "AO1-B", new List<Student>()),                           //klas [1]
        new Klas("KL0003", "AO2-A", new List<Student>()),                           //klas [2]
        new Klas("KL0004", "AO3-B", new List<Student>()),                           //klas [3]
        new Klas("KL0005", "GD1-A", new List<Student>()),                           //klas [4]
        new Klas("KL0069", "STM-F", new List<Student>()),                           //klas [5]
    };

    //A big ol' list with students.
    static List<Student> StudentenLijst = new List<Student>()
    {
        new Student("S101010", "Test123", "69", "420"),                             //student [0]
        new Student("S202020", "Dio Brando", "1234AT", "+31 06 261552"),            //student [1]
        new Student("S303030", "Mark Rutte", "2345MK", "+31 06 289985"),            //student [2]
        new Student("S404040", "Jarl Balgruuf", "5897WH", "+31 06 123456"),         //student [3]
        new Student("S505050", "Darth Revan", "3131MK", "+31 06 280985"),           //student [4]
        new Student("S606060", "Geralt Of Rivia", "3459RV", "+31 06 909090"),       //student [5]
        new Student("S707070", "Obama II", "0262BR", "+31 06 158775"),              //student [6]
    };

    //List with subjects a student can follow
    static List<Vakken> VakkenLijst = new List<Vakken>()
    {
        new Vakken("0", "Nederlands"),                                              //Vak [0]
        new Vakken("1", "Engels"),                                                  //Vak [1]
        new Vakken("2", "Rekenen"),                                                 //Vak [2]
        new Vakken("3", "Software Programming"),                                    //Vak [3]
        new Vakken("4", "Web Development"),                                         //Vak [4]
        new Vakken("5", "Tools en Devices"),                                        //Vak [5]
        new Vakken("6", "Maatschappijleer"),                                        //Vak [6]
        new Vakken("7", "Game Development"),                                        //Vak [7]
        new Vakken("8", "project"),                                                 //Vak [8]
    };

    public void AlleLijsten()
    {
        //Adds students to a class---------------------------------------------------------------------
        //Creates a new class variable and binds it the classlist
        Klas klas01 = Klassenlijst[0];
        Klas klas02 = Klassenlijst[1];
        Klas klas03 = Klassenlijst[2];
        Klas klas04 = Klassenlijst[3];
        Klas klas05 = Klassenlijst[4];
        Klas klas69 = Klassenlijst[5];

        //makes a new student variable and binds it to a student object in the student list.
        Student student01 = StudentenLijst[0];
        Student student02 = StudentenLijst[1];
        Student student03 = StudentenLijst[2];
        Student student04 = StudentenLijst[3];
        Student student05 = StudentenLijst[4];
        Student student06 = StudentenLijst[5];
        Student student07 = StudentenLijst[6];

        //Bunch of students get assigned to a class (theres a bunch of code behind here that i dont show)
        klas01.Voegstudenttoe(student01);
        klas01.Voegstudenttoe(student02);
        klas01.Voegstudenttoe(student03);
        klas02.Voegstudenttoe(student04);
        klas02.Voegstudenttoe(student01);
        klas03.Voegstudenttoe(student05);
        klas04.Voegstudenttoe(student06);
        klas69.Voegstudenttoe(student04);
        klas69.Voegstudenttoe(student07);

        //Assign a subject to a student-----------------------------------------------------------------------
        //creates a subject variable and binds it to an actual subject 
        Vakken VakNED = VakkenLijst[0];
        Vakken VakENG = VakkenLijst[1];
        Vakken VakREK = VakkenLijst[2];
        Vakken VakSWP = VakkenLijst[3];
        Vakken VakWDV = VakkenLijst[4];
        Vakken VakTND = VakkenLijst[5];
        Vakken VakMSL = VakkenLijst[6];
        Vakken VakGDV = VakkenLijst[7];
        Vakken VakPRJ = VakkenLijst[8];

        //vakken aanwijzen aan de studenten
        //student 2 gets a bunch of subjects assigned
        student01.VoegVakToe(VakNED);
        student01.VoegVakToe(VakENG);
        student01.VoegVakToe(VakPRJ);
        student01.VoegVakToe(VakMSL);
        student01.VoegVakToe(VakWDV);
        student01.VoegVakToe(VakSWP);

        //same goes for student 2
        student02.VoegVakToe(VakWDV);
        student02.VoegVakToe(VakSWP);

        //rince and repeat
        student03.VoegVakToe(VakWDV);
        student03.VoegVakToe(VakSWP);

        //student 4 krijgt vakken aangewezen
        student04.VoegVakToe(VakWDV);
        student04.VoegVakToe(VakSWP);
        student04.VoegVakToe(VakNED);

        //student 5 krijgt vakken aangewezen
        student05.VoegVakToe(VakWDV);
        student05.VoegVakToe(VakSWP);

        //student 6 krijgt vakken aangewezen
        student06.VoegVakToe(VakWDV);
        student06.VoegVakToe(VakGDV);

        student06.VoegVakToe(VakSWP);
        student06.VoegVakToe(VakREK);
        student06.VoegVakToe(VakNED);
        student06.VoegVakToe(VakPRJ);

        //student 7 krijgt vakken aangewezen
        student07.VoegVakToe(VakSWP);
        student07.VoegVakToe(VakREK);
        student07.VoegVakToe(VakNED);
        student07.VoegVakToe(VakPRJ);
    }

    public new static string ToString()
    {
        return $"Lijst met alle klassen: {String.Join("\n", Klassenlijst)}";
    }

}

我只是一个初学者,我的知识不是特别深,所以如果我在某个地方犯了一个愚蠢的错误,请原谅我。

编辑:我只打印带有类的列表的原因是我只想看看打印是否有效。其余的将在以后出现。

编辑二:为什么它首先要转换为布尔值?

标签: c#

解决方案


您忘记在ToString()方法调用中添加括号。

Console.WriteLine(Lists.ToString);

应该:

Console.WriteLine(Lists.ToString());

推荐阅读