在方法重载之间共享变量?

Ove*_*ive 1 c# methods

我是一个真正的新手程序员,我正试图做一个共享变量的重载.基本上我想要做的是有一个带有一个重载的方法,它将整数值写入其中的变量,另一个重载只返回该值.

现在我尝试这样做:

private int GetQID(int qID)
    {
        int ID = qID;
    }    
private int GetQID()
    {
        return ID;
    }
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不起作用,因为第二个重载不能访问第一个重载的"ID"变量.有没有办法不诉诸全局变量,我可以这样做吗?

Jon*_*eet 5

不,局部变量纯粹是所讨论方法的局部变量.你想要实现的目标并不是很清楚,但是如果你想要在方法调用之间持续存在任何状态,你需要一个字段,并且可能将它作为属性公开.

private int id;
public int Id
{
    set
    {
        // Perform some validation?
        id = value;
    }
    get { return id; }
}
Run Code Online (Sandbox Code Playgroud)

如果您只想要一个没有其他逻辑的字段支持的属性,那么自动实现的属性很有用:

public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)