简体   繁体   English

ToString()不返回预期的字符串

[英]ToString() does not return the expected string


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3Generics
{
    class Program
    {
        static void Main(string[] args)
        {
            ScheduleSelectedItems sitems = new ScheduleSelectedItems("Yusuf");
            ScheduleSelectedItemsList slist = new ScheduleSelectedItemsList();
            slist.Items.Add(sitems);
            Console.Write(slist.Items[0].ToString());
            Console.ReadKey();
        }
    }
    public class ScheduleSelectedItems
    {
        private string Ad;

        public ScheduleSelectedItems(string ad)
        {
            Ad = ad;
        }
    }

    public class ScheduleSelectedItemsList
    {
        public List Items;

        public ScheduleSelectedItemsList()
        {
            Items = new List();
        }
    }
}

how can i add "yusuf" on my Console? 如何在我的控制台上添加“yusuf”?

public class ScheduleSelectedItems
    {
        private string Ad;

        public ScheduleSelectedItems(string ad)
        {
            Ad = ad;
        }

        public override string ToString()
        {
            return this.Ad;
        }
    }

What BFree said, with a slight modification to make it singular instead of plural: 什么BFree说,稍作修改,使其成为单数而不是复数:

public class ScheduleSelectedItem
{
    private string Ad;

    public ScheduleSelectedItem(string ad)
    {
        Ad = ad;
    }
    public override string ToString()
    {
        return this.Ad;
    }
}

Additionally, you want an "Add" method for your list. 此外,您需要为列表添加“添加”方法。 While you're at it, why not just inherit from the list class: 当你在它的时候,为什么不继承list类:

public class ScheduleSelectedItemsList : List<ScheduleSelectedItem>
{

}

Or you could just create a type alias: 或者你可以创建一个类型别名:

using ScheduleSelectedItemsList = List<ScheduleSelectedItem>;

Either way, you can use the new code like this: 无论哪种方式,您都可以使用这样的新代码:

class Program
{
    static void Main(string[] args)
    {
        var slist = new ScheduleSelectedItemsList() 
        { 
            new ScheduleSelectedItem("Yusuf") 
        };

        //write every item to the console, not just the first
        slist.All(item => Console.Write(item.ToString()) );
        Console.ReadKey();
    }
}

Add this to your ScheduleSelectedItems class: 将其添加到ScheduleSelectedItems类:

    public override string ToString() {
        return Ad;
    }

That tells the system how such an object should be formatted. 这告诉系统应该如何格式化这样的对象。

您需要覆盖ScheduleSelectedItems的toString()方法以返回“Ad”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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