2016-12-15 115 views
0

我是學習c#的學生,當我執行程序時出錯。'ConsoleApplication1.Student'不包含帶1個參數的構造函數

On console:我期待看到字符串'Harry'

Error: 'ConsoleApplication1.Student' does not contain a constructor that takes 1 arguments

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

你需要在你的類中編寫一個構造函數:「public Student(string name){this.Name = name;}」 – nabuchodonossor

+0

不需要,他需要定義一個構造函數,它帶有一個參數,即名稱。 – HaukurHaf

+0

看看https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx – Eldeniz

回答

1

然後創建一個構造函數1個參數。

On console, i am expecting to see the string 'Harry'

所以,你需要添加覆蓋到merthod ToString()像:

class Student 
{ 
    public string Name {get; set;} 

    public Student(string name) 
    { 
     Name = name; 
    } 

    public override string ToString(); 
    { 
     return Name; 
    } 
} 
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; 
    } 
} 

蒂姆mentionend - 另一種方式就是離開班級不變,只是設置和讀取屬性

Student student = new Student() { Name = "Harry" }; 
Console.WriteLine(student.Name); 

類:

class Student 
{ 
    public string Name { get; set; } 
} 
+1

值得一提的是,他也可以使用對象初始值設定項:'Student student = new Student {Name =「Harry」};' –

+0

ConsoleApplication1.Student在控制檯上可見,我的代碼有什麼問題?讓我按照你的回答嘗試。 – Beginner

+0

它說ConsoleApplication1.Student doesnot包含一個構造函數,它需要0參數。我試過Student student = new Student {Name =「Harry」} – Beginner

3

你需要改變你的學生類有一個構造函數一個參數

class Student 
{ 
    public string Name { get; set; } 

    public Student(string name) 
    { 
     this.Name = name; 
    } 

    public Student() { } 
} 
+0

在控制檯上,我只能看到ConsoleApplication1.Student – Beginner

0

你沒有定義任何構造函數,用1種說法especiall沒有,但你正試圖通過調用學生用這樣的(「哈利」):-)。

用String參數定義構造函數並且它會沒事的。

相關問題