我想从Java转到C#,我想尝试Java中的getter和setter
internal class Person
{
internal string name;
internal void setName (string name)
{
this.name = name;
}
internal string getName ()
{
return this.name;
}
}
主要内容:
Person alex = new Person();
alex.setName("alex");
Console.WriteLine(alex.getName);
输出为:
System.Func`1[System.String]
为什么不显示预期的“alex”?
2条答案
按热度按时间xbp102n01#
因为getName是一个函数,而不是一个getter,所以你的代码应该是
如果要使用setter和getter,语法为
或更紧凑
6qftjkof2#
在C#中,使用属性而不是显式的setter/getter。
或者甚至更短,具有自动属性:
另外,在您的语句中
Console.WriteLine(alex.getName);
getName
是方法,而不是它的结果,因此它打印了方法的类型。要解决这个问题,请将其更改为Console.WriteLine(alex.getName());
,或者使用上面的属性,将其更改为Console.WriteLine(alex.Name));