在 C# 类之间传递值

发布于 2024-11-09 05:52:24 字数 634 浏览 0 评论 0原文

我对 C# 的奇妙世界还是个新手,我不知道如何应对这样的问题。

我在 Visual Studio 2008 上有一个 .NET 网站,并且有一个主页 main.aspx(及其后面的 main.aspx.cs)和一个游戏页面, game.aspx(也与game.aspx.cs)。

main.aspx.cs 的主类中,我有一个静态变量 private static string _username; 以及一个名为 getUsername 的方法,该方法仅返回该值。

现在,在我的游戏类 (game.aspx.cs) 中,我有一个事件处理程序 saveButton_Click(),在此函数中我需要 _username< 的值/代码>!

如果有帮助,用户从主页开始,然后登录...如果登录有效,则保存变量_username,然后用户单击链接转到game.aspx 页面!

我已经研究了内部关键字,但我不确定如何在这个特定的示例中使用它,或者即使在这个示例中这是正确的事情!

I'm quite new in the wonderful world of C# and I'm not sure how to cope with such a problem.

I have a .NET website on Visual Studio 2008, and I have a main page, main.aspx (with its following main.aspx.cs) and a game page, game.aspx (also with game.aspx.cs).

In the main class in main.aspx.cs I have a static variable, private static string _username; and with it, a method called getUsername that simply returns this value.

Now in my game class (game.aspx.cs) I have an event handler, saveButton_Click(), and in this function I need the value of _username!

If it helps, a user starts on the main page, and then logs in... the variable _username is saved if the login is valid and then the user clicks a link to go to the game.aspx page!

I've looked into the internal keyword, but I am not sure how to use it in this particular example or even if it's the right thing to do in this example!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

财迷小姐 2024-11-16 05:52:24

要回答您的问题,您可以在单独的类中创建公共静态属性。

但是,不要

当两个人同时使用您的网站时,此模型将严重失败(或更糟)。

相反,您应该使用会话状态

To answer your question, you can make a public static property in a separate class.

However, don't.

This model will fail horribly (or worse) when two people use your site at once.

Instead, you should use Session State.

写下不归期 2024-11-16 05:52:24

将其添加到您的主页和游戏页面类中:

protected string UserName {
    get { 
        string retVal=string.Empty;
        if (!string.IsNullOrEmpty(Session["UserName"]))
            retVal=Session["Username"].ToString();
        return retVal;
    }
    set{
        Session["UserName"]=value;
    }
}

然后从您的代码访问该属性;

Add this to your main page and game page classes:

protected string UserName {
    get { 
        string retVal=string.Empty;
        if (!string.IsNullOrEmpty(Session["UserName"]))
            retVal=Session["Username"].ToString();
        return retVal;
    }
    set{
        Session["UserName"]=value;
    }
}

and then access the property from your code;

伏妖词 2024-11-16 05:52:24

您必须使用Sessions来存储和访问多个页面中的值:

//To store value in session variable
Session["UserName"] = "UserName"; 

//To access the value in the session variable
String UserName = Session["UserName"];

检查详细信息ASP.NET 会话状态

You have to use Sessions to store and access the value in multiple pages:

//To store value in session variable
Session["UserName"] = "UserName"; 

//To access the value in the session variable
String UserName = Session["UserName"];

Check for Details ASP.NET Session State

鸩远一方 2024-11-16 05:52:24

恕我直言,您可以使用基于表单的身份验证,这样就可以非常简单地通过User.Identity.Name获取用户名。

IMHO, you could use Forms Based Authentication which would then make it very simple to get the user name, via User.Identity.Name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文