像static多个不同用户访问会不会共享

oujiachao 2013-04-07 02:45:47
比如一个站点,不同用户访问static变量会不会都一样的呢?如果不是又用什么
...全文
252 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oujiachao 2013-04-09
  • 打赏
  • 举报
回复
引用 6 楼 liuchaolin 的回复:
c#单例模式怎么回事?
你有没有看到楼下的说NO呵呵
oujiachao 2013-04-09
  • 打赏
  • 举报
回复
引用 6 楼 liuchaolin 的回复:
c#单例模式怎么回事?
我觉得应该也是 就是没去证明过这个东西
FunnyRabbit87 2013-04-08
  • 打赏
  • 举报
回复
同 7楼。 就算是不同的实例,static还是一样的,还是会被不同的实例共享。 换句话话说static和对象的实例是没有关系的。因为你直接类名.static变量名访问。 如果有人改写了static变量值,其他人读取时就会受影响。 好好看看java关于static方面的知识,你会对其了解更深。
xuan.ye 2013-04-08
  • 打赏
  • 举报
回复
引用 7 楼 claymore1114 的回复:
没有动态改变值, 应该是 一样。 单例模式只是保证 对象初始化一次的静态对象,实际上 静态成员就是共享的。
+1
claymore1114 2013-04-08
  • 打赏
  • 举报
回复
没有动态改变值, 应该是 一样。 单例模式只是保证 对象初始化一次的静态对象,实际上 静态成员就是共享的。
md5e 2013-04-08
  • 打赏
  • 举报
回复
oujiachao 2013-04-07
  • 打赏
  • 举报
回复
引用 2 楼 oujiachao 的回复:
引用 1 楼 liuchaolin 的回复:不一样,要用单例模式才可以,似如 C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374……
不是说静态变量静态存储的,难道两个进程不一样,能否解释一下这些道理。
oujiachao 2013-04-07
  • 打赏
  • 举报
回复
引用 3 楼 yuji821 的回复:
用Session
无语
yuji821 2013-04-07
  • 打赏
  • 举报
回复
用Session
oujiachao 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
不一样,要用单例模式才可以,似如 C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485……
想问下,还不是static的吗 此时怎么会是一样的了啊
md5e 2013-04-07
  • 打赏
  • 举报
回复
不一样,要用单例模式才可以,似如

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32;
using System.Management;
using System.Diagnostics;

namespace Galsun.HH.FCX.Content
{
    /// <summary>
    /// 获取硬件信息
    /// </summary>
    public  class  Hard
    {
        private static volatile Hard instance = null;
        private static object lockHelper = new object();
        private string _HardID = string.Empty;
        /// <summary>
        /// 构造函数
        /// </summary>
        private Hard()
        {
            _HardID = GetHardInfo();
        }
        /// <summary>
        /// 获取硬件信息
        /// </summary>
        public string HardID
        {
            get
            {
                return _HardID;
            }
        }
        /// <summary>
        /// 单体模式返回当前类的实例
        /// </summary>
        /// <returns></returns>
        public static Hard GetCacheService()
        {
            if (instance == null)
            {
                lock (lockHelper)
                {
                    if (instance == null)
                    {
                        instance =  new Hard();
                    }
                }
            }
            return instance;
        }
        /// <summary>
        /// 获取硬盘ID
        /// </summary>
        /// <returns>硬盘ID</returns>
        private string GetHardInfo()
        {

            string HDInfo = "";

            ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
            ManagementClass cimobject2 = new ManagementClass("Win32_Processor");
            try
            {

                ManagementObjectCollection moc1 = cimobject1.GetInstances();

                foreach (ManagementObject mo in moc1)
                {

                    HDInfo += (string)mo.Properties["Model"].Value;
                    break;
                }
                ManagementObjectCollection moc2 = cimobject2.GetInstances();

                foreach (ManagementObject mo in moc2)
                {

                    HDInfo += (string)mo.Properties["Processorid"].Value;
                    break;
                }
            }
            catch (Exception err)
            {
                HDInfo = err.ToString();
            }
            return HDInfo;

        }

        private string RunCmd(string command)
        {
            //实例一个Process类,启动一个独立进程  
            Process p = new Process();
            //Process类有一个StartInfo属性  
            //设定程序名  
            p.StartInfo.FileName = "cmd.exe";
            //设定程式执行参数     
            p.StartInfo.Arguments = "/c " + command;
            //关闭Shell的使用    
            p.StartInfo.UseShellExecute = false;
            //重定向标准输入       
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            //重定向错误输出    
            p.StartInfo.RedirectStandardError = true;
            //设置不显示窗口  
            p.StartInfo.CreateNoWindow = true;
            //启动  
            p.Start();
            //也可以用这种方式输入要执行的命令  
            //不过要记得加上Exit要不然下一行程式执行的时候会当机  
            //p.StandardInput.WriteLine(command);  
            //p.StandardInput.WriteLine("exit"); 
            //从输出流取得命令执行结果  
            return p.StandardOutput.ReadToEnd();
        }


    }
}

Hard hard = Hard.GetCacheService(); GetHardID();

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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