我是正在学习c#
的学生,当我执行程序时遇到错误。
On console
:我希望看到字符串'Harry'
。
错误:'ConsoleApplication1.Student'不包含带有1个参数的构造函数
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Student student = new Student("Harry");
System.Console.WriteLine(student.ToString());
System.Console.ReadLine();
}
}
class Student
{
public string Name { get; set; }
}
}
问题:如何解决该计划?请任何人指导我。
答案 0 :(得分:5)
你的类需要一个带有一个参数的构造函数。
Student student = new Student("Harry");
System.Console.WriteLine(student.ToString());
<强>类别:强>
class Student
{
public string Name { get; set; }
public Student(string Name) //constructor here
{
this.Name = Name;
}
public override string ToString() //overload of ToString
{
return this.Name;
}
}
正如蒂姆所提到的那样 - 另一种方式是让课堂不受影响,只需设置并阅读该属性
Student student = new Student() { Name = "Harry" };
Console.WriteLine(student.Name);
<强>类别:强>
class Student
{
public string Name { get; set; }
}
答案 1 :(得分:3)
您需要更改您的学生班级,以获得一个带有一个参数的构造函数
class Student
{
public string Name { get; set; }
public Student(string name)
{
this.Name = name;
}
public Student() { }
}
答案 2 :(得分:1)
然后创建一个带有1个参数的构造函数。
在控制台上,我希望看到字符串&#39; Harry&#39;
因此,您需要将覆盖添加到merthod ToString()
,例如:
class Student
{
public string Name {get; set;}
public Student(string name)
{
Name = name;
}
public override string ToString();
{
return Name;
}
}
答案 3 :(得分:0)
你没有定义任何构造函数,特别是没有1个参数,但是你试图通过调用Student(&#34; Harry&#34;)来使用这样的: - )。
使用String参数定义构造函数,它会没问题。