可以';t访问实例化对象c#/asp.net

本文关键字:对象 asp net 实例化 访问 可以 | 更新日期: 2023-09-27 18:24:04

我有一个应用程序,当获取页面时,它会实例化一个名为"SecretNumber"的类中的对象。在那之后,我想使用实例化的对象,而不是实例化一个新的对象。

下面是代码隐藏文件中的一段代码,问题是我不能在按钮函数中使用对象引用。我收到一个错误,告诉我该名称在当前上下文中不存在。

如何解决这个问题?提前感谢!

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e) {
        SecretNumber guessNr = new SecretNumber();
    }
    protected void btnCheckNr_Click(object sender, EventArgs e) {
        if (!Page.IsValid) {
            return;
        }
        else {
            var guessedNr = int.Parse(inputBox.Text);
            var result = guessNr.MakeGuess(guessedNr); <- The name 'guessNr' does not exist in the current context
        }
    }
}

可以';t访问实例化对象c#/asp.net

将变量的声明移出方法的范围,使其成为_Default类型的私有字段。

这将起的作用

public partial class _Default : System.Web.UI.Page
{
    private SecretNumber guessNr;
    protected void Page_Load(object sender, EventArgs e) {
        guessNr = new SecretNumber();
    }
    protected void btnCheckNr_Click(object sender, EventArgs e) {
        if (!Page.IsValid) {
            return;
        }
        else {
            var guessedNr = int.Parse(inputBox.Text);
            var result = guessNr.MakeGuess(guessedNr); <- The name 'guessNr' does not exist in the current context
        }
    }
}
SecretNumber guessNr = new SecretNumber();

实际上什么都没做。您需要:

public partial class _Default : System.Web.UI.Page
{
    private SecretNumber guessNr;
    protected void Page_Load(object sender, EventArgs e) {
        this.guessNr = new SecretNumber();
    }
    protected void btnCheckNr_Click(object sender, EventArgs e) {
        if (!Page.IsValid) {
            return;
        }
        else {
            var guessedNr = int.Parse(inputBox.Text);
            var result = this.guessNr.MakeGuess(guessedNr);
            // Now use result
        }
    }
}

如果要在btnCheckNr中访问guessNr,请将其置于Page_Load之外。

SecretNumber guessNr;

然后用CCD_ 5方法分配。

我认为您需要阅读一些关于C#中类(字段、方法、事件)的基本信息。这不是ASP.NET的问题,因为在OOP方面,ASP.NET遵循与任何其他.NET技术完全相同的模式。

显然,您需要在此处使用类型为SecretNumber的字段