我是C#的新手,正在研究课程并理解它们。我的问题是我不了解如何创建Get
来检索私有变量_yourname
和Set
来设置私有变量_yourname
。
namespace WindowsFormsApplication1
{
class InputClass
{
private string _yourName;
public string _banner;
public virtual void GetInfo();
public InputClass(String _banner)
{
_banner = "Enter your name";
}
}
}
也许我对GetInfo
使用了错误的功能。但是我也想知道如果我GetInfo
()
我应该在其中写_yourname
,我会感到{{1}}。
答案 0 :(得分:1)
听起来您正试图提供对_yourName
字段的访问权限。如果是这样,那么只需使用属性
class InputClass {
public string YourName {
get { return _yourName; }
set { _yourName = value; }
}
...
}
现在InputClass
的消费者可以访问它,就像它是一个只读字段一样。
InputClass ic = ...;
string yourName = ic.YourName;
ic.YourName = "hello";
注意:C#为这样的简单属性提供了一种特殊的语法,这些属性只是对私有字段的包装。它被命名为自动实现的属性
class InputClass {
public string YourName { get; set; }
}
答案 1 :(得分:1)
您可以使用get
和set
关键字覆盖获取者和设置。例如:
class InputClass
{
private string _yourName;
private string _banner;
public YourName
{
get { return _yourName; }
set { _yourName = value; }
}
public Banner
{
get { return _banner; }
set { _banner = value; }
}
public InputClass(String banner)
{
_banner = banner;
}
}
答案 2 :(得分:1)
在C#中有一些属性,它们具有其他语言中的公共getter和setter方法的功能:
class InputClass
{
private string _yourName;
public string _banner;
public InputClass(String _banner)
{
this._banner = _banner;
}
public string YourName
{
get { return _yourName; }
set { _yourName = value; }
}
}
但如果您愿意,可以使用自动属性:
class InputClass
{
public InputClass(String _banner)
{
Banner = _banner;
}
public string YourName
{
get; set;
}
public string Banner
{
get; set;
}
}
答案 3 :(得分:0)
1。)使用属性而不是成员,你得到一个免费的访问者(get)和mutator(set)。
public string YourName { get; set; }
public string Banner { get; set; }
2。)您可以利用默认构造函数,并在运行中声明它。
//the old way:
InputClass myClass = new InputClass();
myClass.YourName = "Bob";
myClass.Banner = "Test Banner";
//on the fly:
InputClass myClass = new InputClass()
{
YourName = "Bob",
Banner = "Test Banner"
}