c# - 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
我究竟做错了什么?
解决方案
您正在尝试在 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());
推荐阅读
- spring-boot - Springboot Jboss系统属性问题
- javascript - ReactJS / NextJS 状态数组在 setState 后未呈现
- angular - 如何在第三个组件类中扩展两个 Angular 类组件?
- swift - 有没有办法快速构建异常层次结构?
- sql-server - 并行作业 SQL Server
- pdfsharp - 创建的 pdf 不显示所有 UTF-8 字符
- mysql - 将日期表传递给 Kusto 中的范围函数
- http - 如何在 WebSphere Application Server v9 上将 URL http 重定向到 https
- vue.js - Vue 或 Vuetify 文件夹选择
- php - 如何从 Laravel Passport 中的刷新令牌中获取 id?