草庐IT

c# - 无法确定条件表达式的类型,因为 'int' 和 <null> 之间没有隐式转换

为什么不能编译?int?number=true?5:null;Typeofconditionalexpressioncannotbedeterminedbecausethereisnoimplicitconversionbetween'int'and 最佳答案 规范(§7.14)说对于条件表达式b?x:y,存在三种可能性,x和y都具有类型和某些良好条件满足,x和y中只有一个具有类型并且满足某些良好条件,或发生编译时错误。这里的“一定的好条件”是指一定的转换是可能的,我们将在下面详细介绍。现在,让我们转向规范的相关部分:Ifonlyo

c# - 有没有办法检查 int 是否是 C# 中的合法枚举?

我读过一些SO帖子,似乎缺少最基本的操作。publicenumLoggingLevel{Off=0,Error=1,Warning=2,Info=3,Debug=4,Trace=5};if(s=="LogLevel"){_log.LogLevel=(LoggingLevel)Convert.ToInt32("78");_log.LogLevel=(LoggingLevel)Enum.Parse(typeof(LoggingLevel),"78");_log.WriteDebug(_log.LogLevel.ToString());}这不会导致异常,很高兴存储78。有没有办法验证进入枚举

C# int 到 byte[]

我需要将int转换为byte[]一种方法是使用BitConverter.GetBytes()。但我不确定这是否符合以下规范:AnXDRsignedintegerisa32-bitdatumthatencodesanintegerintherange[-2147483648,2147483647].Theintegerisrepresentedintwo'scomplementnotation.Themostandleastsignificantbytesare0and3,respectively.Integersaredeclaredasfollows:来源:RFC10143.2我怎样

c# - 将对象转换为 int 的更好方法

这可能是微不足道的,但我想不出更好的方法。我有一个COM对象,它返回一个变体,它成为C#中的一个对象。我可以把它变成一个int的唯一方法是inttest=int.Parse(string.Format("{0}",myobject))有没有更简洁的方法来做到这一点?谢谢 最佳答案 您有多种选择:(int)—类型转换运算符。如果对象已经是继承层次结构中某个级别的整数,或者如果定义了隐式转换,则工作。int.Parse()/int.TryParse()—用于从未知格式的字符串转换。int.ParseExact()/int.TryPars

c# - 拆分字符串,在一行中转换 ToList<int>()

我有一个包含数字的字符串stringsNumbers="1,2,3,4,5";我可以拆分它然后将其转换为ListsNumbers.Split(new[]{','}).ToList();如何将字符串数组转换为整数列表?这样我就可以转换string[]至IEnumerable 最佳答案 varnumbers=sNumbers?.Split(',')?.Select(Int32.Parse)?.ToList();最新版本的C#(v6+)允许您使用null-conditionaloperator在线执行空值检查

c# - 如何将逗号分隔的字符串转换为 List<int>

这个问题在这里已经有了答案:Convertcommaseparatedstringofintstointarray(9个回答)关闭去年。stringtags="9,3,12,43,2"ListTagIds=tags.Split(',');这不起作用,因为split方法返回一个字符串[]

c# - 转换为值类型 'Int32' 失败,因为具体化值为 null

我有以下代码。我收到错误:"Thecasttovaluetype'Int32'failedbecausethematerializedvalueisnull.Eithertheresulttype'sgenericparameterorthequerymustuseanullabletype."当CreditHistory表没有记录时。varcreditsSum=(fromuincontext.Userjoinchincontext.CreditHistoryonu.IDequalsch.UserIDwhereu.ID==userIDselectch.Amount).Sum();如何修

c# - int、Int16、Int32 和 Int64 之间有什么区别?

int、System.Int16、System.Int32和System.Int64有什么区别比他们的大小? 最佳答案 每种类型的整数都有不同的存储容量范围TypeCapacityInt16--(-32,768to+32,767)Int32--(-2,147,483,648to+2,147,483,647)Int64--(-9,223,372,036,854,775,808to+9,223,372,036,854,775,807)正如JamesSutherland在hisanswer中所述:intandInt32areindeeds

c# - 如何将字符串解析为可为空的 int

我想在C#中将字符串解析为可为null的int。IE。如果无法解析,我想取回字符串的int值或null。我有点希望这会奏效int?val=stringValasint?;但这行不通,所以我现在的做法是编写这个扩展方法publicstaticint?ParseNullableInt(thisstringvalue){if(value==null||value.Trim()==string.Empty){returnnull;}else{try{returnint.Parse(value);}catch{returnnull;}}}有更好的方法吗?编辑:感谢TryParse的建议,我确实知

c# - 我应该使用 int 还是 Int32

在C#中,int和Int32是同一回事,但我多次读到int优于Int32没有给出原因。有什么原因吗?我应该关心吗? 最佳答案 两者确实是同义词;int看起来会更熟悉一些,Int32使32位对于阅读您的代码的人来说更加明确。我倾向于在我只需要“整数”的地方使用int,在大小很重要(加密代码、结构)的地方使用Int32,这样future的维护者就会知道它是安全的如果合适,扩大int,但应注意以相同方式更改Int32。生成的代码将是相同的:区别纯粹是可读性或代码外观之一。 关于c#-我应该使用