C#应用程序中.用户登陆后.比如要把用户名,用户等级,用户IP地址等等记录到变量中.我们需要使用到全局变量.就跟ASP网站中登陆后使用SESSION,COOKIE的原理是一样的.有一种方式总可能会记录下用户登陆的信息,C#中用到的是自定义一个类.其中定义静态变量来实现的,下面是使用的部分代码:
//定义类GlobalUserClass.CS 类代码
using System;
using System.Net;
namespace EP_MIS
{
/// <summary>
/// ProcessUserClass 的摘要说明。
/// </summary>
public class GlobalUserClass
{
private static string HostIPAddress="";
private static string CurrentUserName="";
public GlobalUserClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
// 在此处放置用户代码以初始化页面
}
public static string GlobalUserIP
{
get
{
if (HostIPAddress=="")//如果没有创建,就创建一个新的
{
IPHostEntry oIPHost=Dns.Resolve(Environment.MachineName);
if(oIPHost.AddressList.Length>0)
HostIPAddress=oIPHost.AddressList[0].ToString();
}
else
{
HostIPAddress="";
}
return HostIPAddress;
}
}
public static string GlobalUserName
{
get
{
return CurrentUserName;
}
set
{
CurrentUserName=value;
}
}
}
}
//在登陆的主窗体界面实例化这个类.并在用户登陆成功后将登陆后的用户名等等参数传给类.然后在其他的窗体中就可以直接使用类似"类名称.类中的全局静态变量名"来调用此全局的变量数值.
public GlobalUserClass myclass=new GlobalUserClass();
public MainForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
//按钮事件中关键代码
if(dbUserName==inputUserName)
{
MessageBox.Show("用户当前登陆成功","登陆成功");
GlobalUserClass.GlobalUserName=inputUserName;
//this.textBox3.Text=GlobalUserClass.GlobalUserName;
SoftUserContactForm form2=new SoftUserContactForm();
this.groupBox1.Visible=false;
form2.Show();
}
else
{
MessageBox.Show("用户当前登陆失败","登陆成功");
}
//别的窗体中调用
textBox1.Text=GlobalUserClass.GlobalUserName;
分享到:
相关推荐
Asp.net及C#全局变量使用方法汇总
C# WinForm通过全局变量实现不同窗体之间传值的解决方案的源码
1. **全局变量**:在C#中,全局变量是指在类或结构的成员级别声明的变量,它们在整个程序执行期间都存在,并且可以在类或结构的任何方法中访问。全局变量的一个主要缺点是可能导致代码难以维护,因为它们可以被任何...
Unity3D教程:成员变量和全局变量在函数外面定义的变量叫做成员变量,它们能够通过Unity的检查器进行访问,存储在成员变量中的值将自动地保存在项目中。}使用
- C#不鼓励使用匈牙利命名法(例如,在变量名前加上数据类型缩写)。虽然有时仍然可以看到这种做法,但现代编码实践中已不再提倡。 4. **简洁与明确**: - 名称应尽可能简洁明了,避免冗余或过于复杂的名称。 - ...
目标:在一个线程运行的时候,主程序或者另一个线程,通过改变全局变量实时改变目标变量的做法,比如这里,楼主也就是我,为了在树莓派上运行一个tcp结构的客户端线程,并通过摄像头线程收集的数据实时的通过tcp客户端线程...
4. 共享方式:静态变量是全局变量,被所有类的实例对象共享,即一个实例的改变了静态变量的值,其他同类的实例读到的就是变化后的值;非静态变量是局部变量,不共享的。 5. 访问方式:静态成员不能访问非静态成员;...
本文将深入探讨在ASP.NET Razor中如何使用C#变量,以及相关的数据类型、运算符和数据转换。 首先,变量在C#中是用来存储数据的容器。每个变量都有一个特定的类型,它决定了该变量可以存储哪种类型的数据。例如,`...
总的来说,使用全局变量实现程序的暂停/继续功能是一种常见的方法,但也需要注意它带来的潜在问题,比如代码的可读性和可维护性。在实际编程中,考虑使用更高级的设计模式,如信号量、条件变量等,可能会带来更好的...
本文将详细介绍两种在ASP.NET中创建和使用全局变量的方法。 ### 方法一:通过Web.config配置文件 Web.config文件是ASP.NET应用程序的核心配置文件,它允许开发者设置各种配置选项,包括定义全局变量。以下是如何...
本篇文章将详细介绍三种在C#窗体间传递值的方法:全局变量、构造函数和委托。 1. **全局变量**: 全局变量是一种在整个程序范围内都可以访问的变量,不受函数或类的限制。在窗体间传递数据时,可以在公共类或全局...
但在C#中不推荐使用全局变量,因为可能会导致代码难以理解和维护。 五、变量的生命周期 变量的生命周期是指从创建到销毁的过程。局部变量在进入其作用域时创建,离开作用域时销毁;成员变量随着类的实例创建而创建...
2. 尽量避免全局变量:全局变量可能导致意外的副作用,尽量使用局部变量和类成员代替。如果必须使用全局变量,确保它们有适当的封装和访问修饰符。 3. 使用const和readonly:对于不会改变的常量,使用`const`关键字...
另外,过多地使用全局变量可能会导致内存占用增加,因此在设计时应谨慎考虑全局变量的使用场景。 总结来说,在ASP.NET中设定全局变量主要依赖于`Application`对象,通过`Application_Start`事件进行初始化,然后在...
【标题】"(原创可执行)C#全局鼠标操作实例VS2008"揭示了这是一个使用C#编程语言在Visual Studio 2008环境下编写的程序,它实现了全局鼠标操作的功能。这意味着该程序可以捕获并响应系统级别的鼠标事件,而不仅仅...
在C# WinForm开发中,有时程序可能会遇到未预期的全局变量异常,这些异常如果未经处理,会直接中断程序执行并显示堆栈跟踪信息,给用户带来不愉快的体验。为了提供更稳定的应用程序和良好的用户体验,我们需要采取...
这里,`FormReportList`构造函数接收一个`FormPubs`类型的参数`f`,并将其实例化为成员变量`fp`,以便后续调用`FormPubs`中的方法或属性。 #### 2. 实现窗体间的事件触发 为了让`FormPubs`中的方法能够在`...
本文将详细介绍如何使用C#来实现全局热键的功能,并对代码进行深入解析。 #### 二、基础知识 ##### 1. P/Invoke (Platform Invoke) P/Invoke 是 .NET Framework 中的一种技术,它允许托管代码(如 C#)调用非托管...
4. 局部与全局变量:局部变量在方法或块中声明,只在该作用域内有效。全局变量(成员变量)属于类,可以在类的任何方法中访问。 5. const与readonly:const是常量,一旦赋值就不能改变;readonly变量在初始化后也不...
使用方法:使用vs2013打开编译运行即可; 工程中总共介绍了三种方法: ###方法1:通过保存对象的引用调用其方法实现对子窗体的控制; ###方法2:通过委托,在子窗体显示之前,为委托赋值,关注主窗体的数据变化,当...