我正在研究员工管理系统。每个员工属于一个部门,当员工登录系统时,我在我的班级存储UserId和DepartmentId,如下所示
internal static class MyStaticData
{
internal static Guid UserId { get; set; }
internal static Guid DepartmentId { get; set; }
}
当用户去创建离开应用程序页面并点击保存按钮时,我需要同时发送UserId和DepartmentId来存储在数据库中,那么将UserId和DepartmentId发送到这个页面之间的正确方法是什么
// Create instance property inside the class and assign it when create new object.
public class LeavePage
{
public Guid UserId { get; set; }
public Guid DepartmentId { get; set; }
}
var leavePage = new LeavePage { UserId = MyStaticData.UserId, DepartmentId = MyStaticData.DepartmentId };
或
// Don't have instance property inside the class but use MyStaticData directly
public class LeavePage
{
public void Save()
{
Db.Save(data, ..., MySataicData.UserId, MyStaticData.DepartmentId);
}
}
我不确定哪一个更好(耦合更少),还是有更好的方法呢?
答案 0 :(得分:2)
你可能想尝试使用一些更通用的类的静态实例 - 如下所示:
public class User
{
public Guid Id { get; set; }
public Guid DepartmentId { get; set; }
}
public static class SessionContext
{
public static User CurrentUser { get; set; }
}
然后在保存时使用SessionContext.CurrentUser。
当然,在这种情况下,使用静态类可能不合适,您应该查看特定于会话的实例。
答案 1 :(得分:0)
如果您的课程中不需要包含您的值的实例,请不要这样做。