草庐IT

double-checked-locking

全部标签

c# - 将秒数添加到具有 ArgumentOutOfRangeException 的有效 double 结果的 DateTime

下面的代码会崩溃和烧毁,我不明白为什么:DateTimedt=newDateTime(1970,1,1,0,0,0,0,DateTimeKind.Utc);doubled=double.Parse("1332958778172");Console.Write(dt.AddSeconds(d));有人能告诉我这是怎么回事吗?我只是似乎无法弄清楚为什么...编辑此值来自SalesforceRESTAPI,据我所知,它是一个Unix纪元时间戳。“token发行时间,表示为自Unix纪元(1970年1月1日00:00:00UTC)以来的秒数。”解决方案SalesforceRESTAPI实际上在

c# - UInt64 和 "The operation overflows at compile time in checked mode"- CS0220

这感觉像是一个愚蠢的问题,但我似乎看不到答案。我有一个UInt64,它的最大值应该是UInt64.MaxValue18446744073709551615但是,当我尝试分配一个中等大小的数字时,出现“在检查模式下编译时操作溢出”的溢出错误。如果我将它包装在一个“未经检查”的block中,那么它会编译并运行,就像这个变量为零一样:UInt64value1=1073741824*8;//CompileerrorCS0220UInt64value2=8589934592;//Actualvalue-noerror为什么会这样? 最佳答案

c# - 检查 int、string、double 等任何类型的 null 或 empty 的通用方法

我正在尝试让它工作,但不知何故它超出了我的控制范围......我希望能够检查null或empty到我分配的任何类型。例如:inti=0;stringmystring="";varreult=CheckNullOrEmpty(10)//passingintvarresult1=CheckNullOrEmpty(mystring)//passingstringpublicboolCheckNullOrEmpty(Tvalue){//checkfornulloremptyforstrings//checkfornulli.e.0forint}有人可以帮我解决这个问题吗?我想了解泛型如何适用于

c# - 无法将类型 'double' 隐式转换为 'long'

在这段代码中,我在评论的行中遇到了上述错误。publicdoublebigzarb(longu,longv){doublen;longx;longy;longw;longz;string[]i=textBox7.Text.Split(',');long[]nums=newlong[i.Length];for(intcounter=0;counter=seconddigits){n=firstdigits;}else{n=seconddigits;}if(u==0||v==0){MessageBox.Show("theMultiplyis0");}intintn=Convert.ToIn

c# - 如何快速将 object[,] 向上转换为 double[,]?

我使用Microsoft.Office.Interop.Excel我得到一个类型为object[,]的二维数组,其中包含元素的double.请注意,索引下限是1而不是默认的0,但我可以轻松处理。如何很好地使用.NET3.5将数组转换为double[,]。(我的意思是简洁或紧凑)。注意double[]values_2=values.Cast().ToArray();确实有效,但它按数组展平为一维结构。 最佳答案 object[,]src=newobject[2,3];//Initializesrcwithtestdoubles.src

c# - 为什么编译器决定 2.3 是 double 而不是十进制?

为什么编译器认为2.3是double的,所以这段代码无法编译:decimalx;x=2.3;//Compilationerror-cannotconvertdoubletodecimal.x=(decimal)2.3//O.k.为什么编译器不这样认为:他要取小数,他给我一个可以是小数的值,所以是小数!为什么这不会出现编译错误:shortx;x=23;//O.K.谁说23不是整数? 最佳答案 这里有很多问题。让我们把它们分解成小问题。Whyistheliteral2.3oftypedoubleratherthandecimal?历史原

c# - 如何证明 Dictionary 的 TryGetValue 的双重检查锁定模式不是线程安全的

最近我看到一些C#项目在Dictionary上使用双重检查锁定模式。像这样:privatestaticreadonlyobject_lock=newobject();privatestaticvolatileIDictionary_cache=newDictionary();publicstaticobjectCreate(stringkey){objectval;if(!_cache.TryGetValue(key,outval)){lock(_lock){if(!_cache.TryGetValue(key,outval)){val=newobject();//factorycon

c# - 获取 double[,] 矩形数组的 double[] 行数组

假设你有一个像这样的数组:double[,]rectArray=newdouble[10,3];现在您希望第四行作为3个元素的double[]数组而无需执行以下操作:double[]fourthRow=newdouble[]{rectArray[3,0],rectArray[3,1],rectArray[3,2]};有可能吗?甚至使用Marshal.Something方法?谢谢! 最佳答案 您可以使用Buffer.BlockCopy方法:constintd1=10;constintd2=3;constintdoubleSize=8;

c# - 为什么System.Timers.Timer.Interval 的数据类型是double?

这是一个有点学术性的问题,因为我正在努力思考Microsoft使用double作为Interval属性的数据类型背后的想法!首先来自MDSNInterval是Elapsed事件之间的时间,以毫秒为单位;我会将其解释为离散数字,那么为什么要使用double呢?肯定int或long更有意义!?Interval可以支持5.768585(5.768585毫秒)这样的值吗?尤其是当人们认为System.Timers.Timer的精度远不及亚毫秒时...Mostaccuratetimerin.NET?对我来说似乎有点愚蠢..也许我错过了什么! 最佳答案

c# - 对其中包含 NaN 的 Double 数组进行排序

这更像是一个“你能解释一下吗”类型的问题,而不是其他任何问题。我在工作中遇到一个问题,我们在表格中使用NaN值,但是当表格被排序时,它以一种非常奇怪的方式出现。我认为NaN搞砸了一些东西,所以我编写了一个测试应用程序来查看这是否属实。这就是我所做的。staticvoidMain(string[]args){double[]someArray={4.0,2.0,double.NaN,1.0,5.0,3.0,double.NaN,10.0,9.0,8.0};foreach(doubledbinsomeArray){Console.WriteLine(db);}Array.Sort(some