首页 > 解决方案 > C# 创建一个对象并添加到列表中

问题描述

我有一个基本的 csharp 对象问题。我想将我的电子邮件添加到列表中并显示其内容。

我创建了我的对象类:

 public class Email{
        public string EmailSubject {get; set;} 
        public string EmailContent {get; set;}
        public Email(String Subject, String Content)
        {
            EmailSubject = Subject;
            EmailContent = Content;
        }
    

然后我想创建一个列表并开始制作对象以添加到它们并显示。

    List<Email> Emails = new List<Email>();
    Emails.Add(new Email() {EmailSubject="MySubject", EmailContent="MyContent"} );

    Console.WriteLine();
    foreach (Email e in Emails)
    {
     Console.WriteLine(e);
    }

但是,我收到此错误:

There is no argument given that corresponds to the required formal parameter 'Subject' of 'Email.Email(string, string)' 

我也尝试过这样做

Emails.Add(new Email(EmailSubject="MySubject", EmailContent="MyContent" ));

但我的出路很简单Email

我究竟做错了什么?

标签: c#listoop

解决方案


您正在尝试在 new new Email() 中调用无参数构造函数,但未指定

你可以添加

public Email(){}

或使用现有的

new Email("Subject","Content")

对于打印,您需要覆盖并调用方法 e.ToString()

将方法添加到电子邮件类

public override string ToString()
{
     return $"Subject-{EmailSubject} Content-{EmailContent};
}

然后在foreach

Console.WriteLine(e.ToString());

推荐阅读