创建全局对象?我试图实现以下目标:当用户成功通过身份验证时,我需要创建一个全局用户对象,我可以从不同的表单(或类)访问它。我正在查看VS中可用的数据源,发现有一个“对象”选项可能适合我想要实现的目标。麻烦的是,我不知道它是如何工作的。谁能指出我正确的方向?谢谢。假设这是一个Windows窗体应用程序,您可以创建一个存储在静态ApplicationState类中的User类。步骤:1)创建User类保存用户信息:publicclassUser{publicstringLogin{get;放;}//..其他属性}2)创建ApplicationState类:publicstaticclassApplicationState{publicstaticUserCurrentUser{get;放;}}3)在登录过程中,创建一个新版本的User类并将其分配给ApplicationState.CurrentUser属性:publicvoidCompleteLogin(stringsLogin){Useruser=newUser();user.Login=sLogin;ApplicationState.CurrentUser=用户;}4)您现在可以在项目的任何地方使用ApplicationState.CurrentUser。它被称为Singleton,这是一件坏事(尤其是当它的状态可以改变时)。研究依赖注入(DI)。甚至还有一本专门针对.NET的书。根据要求,这是一个手动执行DI的简单(可能过于简单)示例。DI容器库(也称为控制反转或IoC容器库)可以简化组合根中“连接一切”的过程,并且通常还提供生命周期管理和其他功能。//应用程序的组合根voidMain(){//我们将创建的唯一用户实例varuser=newUser();varinstance=newMyClass(用户);}公共接口IUser{字符串名称{得到;放;}}publicclassUser:IUser{publicstringName{get;放;}}publicclassMyClass{publicMyClass(IUseruser){if(user==null){thrownewArgumentNullException("user");}_user=用户;}私有只读IUser_user;您可以使用或创建一个公共列表,确保经过身份验证的用户只有通过身份验证才能添加到列表中,您甚至可以通过封装字段来访问,创建一个List或string[]属性来执行此操作。想要创建类级别的属性。以上就是C#学习教程:创建全局对象?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
