static(File<->FileInfo)以及登录问题

pshy 2005-11-12 10:13:25
1、用File和FileInfo二个类来讨论一下静态成员和实例成员
2、用户登录问题:用户数据怎样在登录窗体和主窗体之间共用(这样好不好?)
public class MainFrm{
........
private static UserInfo currentUser=null;
public static UserInfo CurrentUser{
set{
currentUser=value;
}
get{
return currentUser;
}
}
static void Main(){
MainFrm FrmMain=new MainFrm();
LoginFrm FrmLogin=new LoginFrm();
FrmLogin.ShowDialog();
if(FrmLogin.DialogResult==DialogResult.OK)
Application.Run(FrmMain);
else
Application.Exit();
}
}
public class LoginFrm{
....
private void btnLogin_Click(object sender, System.EventArgs e){
.....
MainFrm.CurrentUser=User.GetUserInfo(txtLogin.Text);
....
}
}
...全文
239 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
axqd 2005-12-03
  • 打赏
  • 举报
回复
AppDomain是应用程序域,怎么是局部的呢?除非你是要给其他应用程序通信,比如QQ,呵呵
pshy 2005-11-14
  • 打赏
  • 举报
回复
AppDomain.GetData()/AppDomain.SetData()
好象也是局部的,在C#中如果多窗体共用数据(CurrentUser)用什么方法实现比较好?
linanwang 2005-11-12
  • 打赏
  • 举报
回复
FrmMain.CurrentUser=FrmLogin.GetUserInfo;//声明一个新的公用属性
linanwang 2005-11-12
  • 打赏
  • 举报
回复
改成下面这样不行吗?
public class MainFrm{
........
private UserInfo currentUser=null;
public UserInfo CurrentUser{
set{
currentUser=value;
}
get{
return currentUser;
}
}
static void Main(){
MainFrm FrmMain=new MainFrm();
LoginFrm FrmLogin=new LoginFrm();
FrmLogin.ShowDialog();
if(FrmLogin.DialogResult==DialogResult.OK)
FrmMain.CurrentUser=User.GetUserInfo(txtLogin.Text);
FrmLogin.Dispose();
Application.Run(FrmMain);
else
Application.Exit();
}
}
public class LoginFrm{
....
private void btnLogin_Click(object sender, System.EventArgs e){
.....

....
}
}
pshy 2005-11-12
  • 打赏
  • 举报
回复
对于第一个问题,我是看了几个讲静态成员和动态成员的帖还有看了关于这二个类的一些解说。
都不是很清楚,现在想更深入的了解静态成员和动态成员在使用时的好坏。所以拿这二个类出来,实际一点比较容易理解。

谢谢各位的支持。。。
pshy 2005-11-12
  • 打赏
  • 举报
回复
不好意思,User是UserInfo类的一个实例来的.如果MainFrm中的CurrentUser不声明为静态的话怎么把数据传过去?这里应该不能用MainFrm的实例吧?

AppDomain.GetData()/AppDomain.SetData()
这个没试,不知道怎么用!看下帮助先:)
linanwang 2005-11-12
  • 打赏
  • 举报
回复
噢错了,应该是FrmLogin.Dispose()
linanwang 2005-11-12
  • 打赏
  • 举报
回复
不需要将Mainfrm的UserInfo,和Loginfrm的GetUserInfo(txtLogin.Text);声明为静态成员,公用成员就可以了
Loginfrm在关闭close()之后它的对象并没有释放,在GetUserInfo(txtLogin.Text后面要加一句Loginfrm.Dispose();
linanwang 2005-11-12
  • 打赏
  • 举报
回复
1.有什么好说的吗??
2.这样不太好
axqd 2005-11-12
  • 打赏
  • 举报
回复
如果不想传参数的话,可以试试AppDomain.GetData()/AppDomain.SetData()
pshy 2005-11-12
  • 打赏
  • 举报
回复
怎么就没人来发表下意见了。。。
还不是很清楚喔!
pshy 2005-11-12
  • 打赏
  • 举报
回复
应该不可能这样的吧!User是UserInfor类的实例,而txtLogin是登录窗体里面的一个文本输入框的名字。因为主窗体中的CurrentUser是登录后的用户,有机会在其它窗体中使用。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧