减少变量名称长度

时间:2011-06-15 08:07:15

标签: c# .net asp.net

我使用下面的代码,会话变量在 Common 类和 SessionVariables struct下声明。

会话变量名称变得很长,你知道如何在我的情况下最小化变量名吗?我可以使用像SessionVariables.IsLogout这样的变量名而不包括类名吗?

会话[Common.SessionVariables.IsLogout]

public class Common
{
    public struct SessionVariables
    {
        public static string IsLogout = "IsLogout";
    }
}

6 个答案:

答案 0 :(得分:2)

您可以使用using alias directive。然后,您将能够以SV.IsLogout的形式访问变量,如下例所示:

namespace Foo
{
    using SV = Common.SessionVariables;

    public class Common
    {
        public struct SessionVariables
        {
            public static string IsLogout = "IsLogout";
        }
    }

    public class Example
    {
        public void Bar()
        {
            string test = SV.IsLogout;
        }
    }
}

答案 1 :(得分:2)

HttpSessionState类创建扩展方法。

public static class HttpSessionStateExtensions
{
    public static bool IsLoggedOut(this HttpSessionState instance)
    {
        return instance[Common.SessionVariables.IsLogout] == true.ToString();
    }
    public static bool SetIsLoggedOut(this HttpSessionState instance, bool value)
    {
        instance[Common.SessionVariables.IsLogout] = value.ToString();
    }
}

允许您使用(键入和所有内容):

session.IsLoggedOut();

session.SetIsLoggedOut(false);

答案 2 :(得分:1)

这样做的一种方法是从Common类继承您的类。然后,您可以直接将变量称为SessionVariables.IsLogout。

答案 3 :(得分:1)

这只是缩短它的一种方法

 public static class Account
    {
        public static int UserID
        {
            get { return Session[SessionVariables.UserID]; }
            set { Session[SessionVariables.UserID] = value; }
        }

        // .... and so on
    }

您可以像这样使用它们:

protected void Page_Load(object sender, EventArgs e)
{
     Response.Write(Account.UserID);
}

使用而不是一直使用Session [Sessionvariables.UserID]要短得多。

我的2美分

答案 4 :(得分:0)

您可以创建一个“快捷类”,如:

public class SesVar
{
    public Common.SessionVariables IsLogout
    {
        get
        {
            return Common.SessionVariables.IsLogout;
        }
    }
}

然后你做Session[SesVar.IsLogout]

但我个人不会这样做,因为它不利于您的代码的可读性,而IntelliSense无论如何都会为您打字。

答案 5 :(得分:0)

您可以使用以下属性创建基类:

class PageWithProperties
{
    public bool IsLogout { get{ return (bool)Session["IsLogout"] }
                           set { Session["IsLogout"] = value; } }
}

class PageClass : PageWithProperties
{
     void PageClassMethod()
     {
         if(IsLogout)
         {

         }
     }
}