2013-09-21 74 views
1

我是c#的新手,我一直在玩它,並陷入從方法返回有用的東西。任何幫助都會很棒。如何從類返回字符串?

我現在有這個權利:

Form1.cs

Animal NewAnimal = new Animal("Jack", "Ramp"); 

Animal.cs

public Animal(string Fname, string Lname) 
     { 
      if (Fname == "Jack" | Lname == "Ramp") 
      { 
       string FullName; 
       FullName = Fname + " " + Lname; 
       //return FullName; <--- This is what i tried but didn't work---> 
      } 
     } 
     //return FullName; <--- And Also tried this it didn't work ---> 
從我試過,我做錯事的那些

也許?我將如何返回FullName到Form1.cs並將其顯示在標籤中?

+5

你不能在返回值構造函數。爲全名創建一個屬性,並從你的課程中獲取。 – Harrison

+0

那你爲什麼要爲If語句使用'single bar'?你知道'conditional或'和'bitwise or'之間的區別,對吧? – gunr2171

+0

@ gunr2171我相信|運算符評估語句的兩側,而不是與||短路運營商。這應該工作。 – Harrison

回答

2

在你的鞋,我會檢討指定在C#中的類型的基礎知識。

一種類型是用戶定義的(即你是用戶)字段,屬性,方法和一些定義數據和行爲的其他結構的集合。

如果您的具體情況,您需要考慮您正在實施的行爲。

  • 餵養一個字符串到一個新的Animal
  • 獲取該字符串從Animal

考慮下面的代碼:

public class Animal { 
    public string FullName { get; } 

    public Animal(string firstName, string lastName) { 
    this.FullName = firstName + " " + lastName; 
    } 
} 

然後你可以檢索Animal的名字你實例。

var animal = new Animal("Bob", "Smith"); 
// ... later 
if (animal.FullName.Equals("Jack Ramp", StringComparison.CurrentCulture)); 
textBox.Text = animal.FullName; 

如果這讓你有點失落,我建議審查(並通過包含的實施例實際工作)在 Microsoft Types Overview。本文中有相當多的信息,但它們都是關於C#類型系統的重要信息。

+0

感謝Link,我將通過它進行工作。 –

0

你不能從構造函數返回某些東西。你可以聲明一個屬性或公共領域,像這樣

class Animal { 

public: 
    string FullName; 
    ..... 
} 

那麼你可以通過NewAnimal.FullName訪問FullName

2

您試圖從構造函數中返回一個值...

改爲定義一個方法。

public string FullName(string Fname, string Lname) 
{ 
if (Fname == "Jack" || Lname == "Ramp") 
    { 

       return Fname + " " + Lname; 

    } 

return ""; 

} 
2

您擁有的方法稱爲Constructor。當你想創建一個對象的新實例時調用它。雖然它在定義中沒有返回類型,但它會「返回」對象的新實例(儘管您無法真正控制它)。

你期望的是有另一個公共方法或屬性,將返回一個值。

public class Animal 
{ 
    public string Fullname {get; set;} 

    public Animal(string Fname, string Lname) 
    { 
     if (Fname == "Jack" || Lname == "Ramp") 
     { 
      FullName = Fname + " " + Lname; 
     } 
} 

然後使用以下命令:

Animal NewAnimal = new Animal("Jack", "Ramp"); 
var firstName = NewAnimal.FullName; 
5

你想是這樣的:

public class Animal 
{ 
    public Animal(string fName, string lName) 
    { 
     this.FName = fName; 
     this.LName = lName; 
    } 
    public string FName {get;set;} 
    public string LName {get;set;} 
    public string FullName 
    { 
     get 
     { 
      return String.Format("{0} {1}", FName,LName); 
     } 
    } 
} 
1

Yaur的回答會起作用,但更貼近你彷彿在問,因爲我會做(注:這是Yaur代碼的修改)

public class Animal 
{ 
    public Animal(string fName, string lName) 
    { 
     this.FName = fName; 
     this.LName = lName; 
    } 
    public string FName {get;set;} 
    public string LName {get;set;} 
    public override string ToString() 
    { 
     return String.Format("{0} {1}", FName,LName); 
    } 
}