Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用动态值初始化一次变量_C#_.net_Asp.net Mvc_Constants - Fatal编程技术网

C# 使用动态值初始化一次变量

C# 使用动态值初始化一次变量,c#,.net,asp.net-mvc,constants,C#,.net,Asp.net Mvc,Constants,我声明了一个常量变量,它存储在cookie中,所以它是Ok的,因为不同的浏览器将有不同的副本 private const string CookieName = "TempData"; 现在我想将它存储在第三个位置,所有用户数据都将存储在这个位置 那么我怎样才能申报类似的东西呢 私有常量字符串CookieName=“TempData”+DataTime.Now.Tick.tostring(); 这样每个用户将在第三个位置存储不同的网络cookiename 请告知。如果您仅将变量定义为get,则

我声明了一个常量变量,它存储在cookie中,所以它是Ok的,因为不同的浏览器将有不同的副本

private const string CookieName = "TempData";
现在我想将它存储在第三个位置,所有用户数据都将存储在这个位置

那么我怎样才能申报类似的东西呢

私有常量字符串CookieName=“TempData”+DataTime.Now.Tick.tostring(); 这样每个用户将在第三个位置存储不同的网络cookiename


请告知。

如果您仅将变量定义为
get
,则可以在类的构造函数中对其进行设置,但此后将无法更改

public class MyClass
{
   private string CookieName { get; }

   public MyClass()
   {
      CookieName = "TempData" + DateTime.Now.Ticks.ToString();
   }
}

为此,不能使用
常量
字段。任何带有
const
修饰符的内容都必须能够在编译时计算为常量

您需要的是由静态构造函数初始化的静态字段

public class YourSurroundingClass {
    private static readonly string CookieName;

    static YourSurroundingClass() {
        CookieName = "TempData" + DateTime.Now.Ticks
            .ToString();
    }
}

事实上,你总是得到新的价值。不过,解决方法是,您可以根据需要将值存储在DB或文件中

向我伸出手来。如果需要进一步澄清。

我刚刚编辑了我的答案(那是错误的),请看一看。这就是你要找的吗?你需要删除const关键字。这个变量在哪里声明?如果您想为每个用户创建不同的cookie,那么为什么不使用用户本身的用户名或唯一id创建cookie呢。这会给你更多的控制权。在这一点上没有用户详细信息。只要access生成新值,它就会再次出现。不,它不会。静态构造函数将只运行一次。或者你的意思是,即使你的程序重新启动,你也希望它保持不变?为此,您需要写入一个文件@帕维扎拉姆博士