我正在尝试将带有SalesPerson
的{{1}}对象的字符串返回到主程序,但这不起作用。我做错了什么?
fullNameMethod
答案 0 :(得分:11)
您当前正在尝试访问类似属性的方法
Console.WriteLine("{0}",x.fullNameMethod);
应该是
Console.WriteLine("{0}",x.fullNameMethod());
或者你可以使用
把它变成一个属性public string fullName
{
get
{
string x = firstName + " " + lastName;
return x;
}
}
答案 1 :(得分:0)
使用x.fullNameMethod()
调用方法
答案 2 :(得分:0)
您没有必要的方法,您可以创建这样的属性:
class SalesPerson
{
string firstName, lastName;
public string FirstName { get { return firstName; } set { firstName = value; } }
public string LastName { get { return lastName; } set { lastName = value; } }
public string FullName { get { return this.FirstName + " " + this.LastName; } }
}
该课程甚至可以缩短为:
class SalesPerson
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName {
get { return this.FirstName + " " + this.LastName; }
}
}
然后可以像任何其他财产一样访问该属性:
class Program
{
static void Main(string[] args)
{
SalesPerson x = new SalesPerson("John", "Doe");
Console.WriteLine(x.FullName); // Will print John Doe
}
}
答案 3 :(得分:0)
你最后忘记了()。它不是变量而是函数,当没有参数时,你仍然需要最后的()
对于未来的编码实践,我强烈建议稍微改进代码,这可能会令人沮丧:
public string LastName
{ get { return lastName; } set { lastName = value; } }
如果在这里发生任何类型的处理,谢天谢地,这里不会发生,它会变得非常混乱。如果您要将代码传递给其他人,我建议:
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
}
}
它的时间要长得多,但在浏览大量代码时更容易阅读。
答案 4 :(得分:-1)
这些答案都太复杂了!他写这种方法的方式很好。问题是他调用了这个方法。他没有在方法名称后面加括号,所以编译器认为他试图从变量而不是方法中获取值。 在VB和Delphi中,这些括号是可选的,但在C#中,它们是必需的。 所以,要纠正原帖的最后一行, Console.WriteLine( “{0}”,x.fullNameMethod());