草庐IT

int_void

全部标签

c# - 如果键不存在,C# Dictionary<int, int> 查找会发生什么情况?

我尝试检查null但编译器警告说这种情况永远不会发生。我应该寻找什么? 最佳答案 假设您希望在键确实存在时获取值,请使用Dictionary.TryGetValue:intvalue;if(dictionary.TryGetValue(key,outvalue)){//Keywasindictionary;"value"containscorrespondingvalue}else{//Keywasn'tindictionary;"value"isnow0}(使用ContainsKey然后索引器让它查找键两次,这是毫无意义的。)请注

c# - 如果键不存在,C# Dictionary<int, int> 查找会发生什么情况?

我尝试检查null但编译器警告说这种情况永远不会发生。我应该寻找什么? 最佳答案 假设您希望在键确实存在时获取值,请使用Dictionary.TryGetValue:intvalue;if(dictionary.TryGetValue(key,outvalue)){//Keywasindictionary;"value"containscorrespondingvalue}else{//Keywasn'tindictionary;"value"isnow0}(使用ContainsKey然后索引器让它查找键两次,这是毫无意义的。)请注

c# - int[] 是引用类型还是值类型?

我知道int是值类型,但什么是值类型数组?引用类型?值类型?我想将一个数组传递给一个函数来检查一些东西。我应该只传递数组,因为它只会传递它的引用,还是应该将它作为ref传递? 最佳答案 Arraysaremechanismsthatallowyoutotreatseveralitemsasasinglecollection.TheMicrosoft®.NETCommonLanguageRuntime(CLR)supportssingle-dimensionalarrays,multidimensionalarrays,andjagg

c# - int[] 是引用类型还是值类型?

我知道int是值类型,但什么是值类型数组?引用类型?值类型?我想将一个数组传递给一个函数来检查一些东西。我应该只传递数组,因为它只会传递它的引用,还是应该将它作为ref传递? 最佳答案 Arraysaremechanismsthatallowyoutotreatseveralitemsasasinglecollection.TheMicrosoft®.NETCommonLanguageRuntime(CLR)supportssingle-dimensionalarrays,multidimensionalarrays,andjagg

c# - 为什么将 int 强制转换为无效的枚举值不会引发异常?

如果我有这样的枚举:enumBeer{Bud=10,Stella=20,Unknown}为什么在将这些值之外的int转换为Beer类型时不抛出异常?例如下面的代码没有抛出异常,它向控制台输出'50':inti=50;varb=(Beer)i;Console.WriteLine(b.ToString());我觉得这很奇怪……谁能解释一下? 最佳答案 取自ConfusionwithparsinganEnum这是创建.NET的人的决定。枚举由另一种值类型(int、short、byte等)支持,因此它实际上可以具有任何有效值对于那些值类型。

c# - 为什么将 int 强制转换为无效的枚举值不会引发异常?

如果我有这样的枚举:enumBeer{Bud=10,Stella=20,Unknown}为什么在将这些值之外的int转换为Beer类型时不抛出异常?例如下面的代码没有抛出异常,它向控制台输出'50':inti=50;varb=(Beer)i;Console.WriteLine(b.ToString());我觉得这很奇怪……谁能解释一下? 最佳答案 取自ConfusionwithparsinganEnum这是创建.NET的人的决定。枚举由另一种值类型(int、short、byte等)支持,因此它实际上可以具有任何有效值对于那些值类型。

c# - 返回 void 和返回 Task 有什么区别?

在查看各种C#异步CTP示例时,我看到一些返回void的异步函数,以及其他返回非通用Task的人.我明白为什么要返回Task用于在异步操作完成时将数据返回给调用者,但我看到的函数的返回类型为Task从不返回任何数据。为什么不回void? 最佳答案 SLaks和Killercam的回答很好;我以为我只是添加了更多的上下文。您的第一个问题本质上是关于哪些方法可以标记为async.Amethodmarkedasasynccanreturnvoid,TaskorTask.Whatarethedifferencesbetweenthem?AT

c# - 返回 void 和返回 Task 有什么区别?

在查看各种C#异步CTP示例时,我看到一些返回void的异步函数,以及其他返回非通用Task的人.我明白为什么要返回Task用于在异步操作完成时将数据返回给调用者,但我看到的函数的返回类型为Task从不返回任何数据。为什么不回void? 最佳答案 SLaks和Killercam的回答很好;我以为我只是添加了更多的上下文。您的第一个问题本质上是关于哪些方法可以标记为async.Amethodmarkedasasynccanreturnvoid,TaskorTask.Whatarethedifferencesbetweenthem?AT

c# - 将字符串转换为可空类型(int、double 等...)

我正在尝试进行一些数据转换。不幸的是,大部分数据都是字符串,它应该是int或double等......所以我得到的是这样的:double?amount=Convert.ToDouble(strAmount);这种方法的问题是,如果strAmount为空,如果它为空,我希望它的amount为空,所以当我将它添加到数据库中时,该列将为空。所以我最后写了这个:double?amount=null;if(strAmount.Trim().Length>0){amount=Convert.ToDouble(strAmount);}现在一切正常,但我现在有五行代码而不是一行。这让事情变得有点难以阅

c# - 将字符串转换为可空类型(int、double 等...)

我正在尝试进行一些数据转换。不幸的是,大部分数据都是字符串,它应该是int或double等......所以我得到的是这样的:double?amount=Convert.ToDouble(strAmount);这种方法的问题是,如果strAmount为空,如果它为空,我希望它的amount为空,所以当我将它添加到数据库中时,该列将为空。所以我最后写了这个:double?amount=null;if(strAmount.Trim().Length>0){amount=Convert.ToDouble(strAmount);}现在一切正常,但我现在有五行代码而不是一行。这让事情变得有点难以阅