如何从类中返回字符串?

时间:2013-09-21 01:52:09

标签: c#

我是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并将其显示在标签中?

6 个答案:

答案 0 :(得分: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 :(得分:2)

您正尝试从构造函数中返回一个值...

改为定义方法。

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

                return Fname + " " + Lname;

    }

return "";

}

答案 2 :(得分: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;

答案 3 :(得分: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#类型系统的所有重要信息。

答案 4 :(得分: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);
    }
}

答案 5 :(得分:0)

你不能从构造函数返回一些东西。你可以声明一个属性或公共字段,比如这个

class Animal {

public:
   string FullName;
    .....
}

然后您可以FullName访问NewAnimal.FullName