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