草庐IT

c# - 将 "C# friendly type"名称转换为实际类型 : "int" => typeof(int)

我想得到一个System.Type给定一个string指定一个(原始)类型的C#友好名称,基本上是C#编译器在阅读C#源代码时的方式。我觉得描述我所追求的东西的最佳方式是以单元测试的形式。我希望存在一种通用技术可以使以下所有断言都通过,而不是尝试对特殊C#名称的特殊情况进行硬编码。TypeGetFriendlyType(stringtypeName){...??...}voidTest(){//usingfluentassertionsGetFriendlyType("bool").Should().Be(typeof(bool));GetFriendlyType("int").Sho

c# - Assert.AreEqual 对 int 和 ulong 失败但对 long 和 uint 失败

好吧,我希望我的处理器没有烧毁,因为:[TestMethod]publicvoidtenEqualten(){Int64a=10;UInt32b=10;Assert.AreEqual(a,b);}工作得很好,但是这个:[TestMethod]publicvoidtenNotEqualten(){Int32a=10;UInt64b=10;Assert.AreEqual(a,b);}惨败。你有没有得到相同的结果,还是只有我?如果是,有什么想法,为什么?如果这是.Net4.5的已知问题,那么抱歉垃圾邮件,但我找不到它作为错误。编辑:我找到了重复的here和解释here

c# - 将更多项目添加到非常大的 HashSet<Int32> 时出现 OutOfMemoryException

异常System.OutOfMemoryException在尝试添加23997908th时被抛出HashSet中的项目.我们需要维护一个高性能的唯一整数集合sizeofInt32.MaxValue即2147483647.HashSet的Int32只能存储23997907其中的项目。寻找解决此问题的建议。 最佳答案 HashSet(OfT)对象的容量是该对象可以容纳的元素数量。对象的容量会随着元素的添加而自动增加。ifyouareusing64bitsystem,youcanincreaseHashset'smaxcapacityup

c# - 从 DataRow 单元格解析 int

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion如何从DataRow单元格中解析int值?Int32.Parse(item["QuestionId"].ToString());此代码有效,但看起来过于冗长。也可以处理DBNull值吗?

c# - 如何将 System.Linq.Enumerable.WhereListIterator<int> 转换为 List<int>?

在下面的示例中,我如何轻松转换eventScores至List这样我就可以将它用作prettyPrint的参数?Console.WriteLine("ExampleofLINQ'sWhere:");Listscores=newList{1,2,3,4,5,6,7,8};varevenScores=scores.Where(i=>i%2==0);Action,string>prettyPrint=(list,title)=>{Console.WriteLine("***{0}***",title);list.ForEach(i=>Console.WriteLine(i));};score

c# - Guid 与自动增量 int

我想知道在处理代码中父>子对象的ID方面是否有最佳编码实践,其中数据库记录使用自动递增的int作为ID(在初始保存时)。当然,在代码中,您无法猜测这个ID可能是什么,因此必须将其留空,并大概将所有这些项目保存在一个事务中,首先获取父ID,然后在保存之前将其设置在所有子项上另一方面,Guids在代码中更容易处理,因为您当然可以先愉快地生成Id并将其设置在所有内容上,然后放心保存..有没有一种很好的简单方法来处理代码中使用自动整数作为它们的数据库键的对象?谢谢 最佳答案 GUID似乎是您的主键的自然选择-如果您真的必须,您可能会争辩说将

C# - 将十进制转换为 int32

我有以下代码:inta=Convert.ToInt32(4.5m);intb=Convert.ToInt32(5.5m);Console.WriteLine(a);Console.WriteLine(b);这是输出:46为什么Convert.ToInt32将十进制值舍入到最接近的偶数? 最佳答案 Convert使用四舍五入或银行四舍五入:ThebehaviorofthismethodfollowsIEEEStandard754,section4.Thiskindofroundingissometimescalledroundingt

c# - 哪个是首选 : new Nullable<int> or (int? )null?

在这样的表达式中首选哪种方式:int?Id{get{inti;returnInt32.TryParse(Request["id"],outi)?i:(int?)null;}}在null上转换更好吗?或者创建一个newNullable? 最佳答案 最好的是default(int?),因为它总是按预期工作(引用类型、值类型,甚至在泛型中)。 关于c#-哪个是首选:newNullableor(int?)null?,我们在StackOverflow上找到一个类似的问题:

c# - 在 C# 中格式化 Int 时如何强制符号

我想格式化一个整数i(-100),这样:-99格式为“-99”9种格式为“+09”-1格式为“-01”0格式为“+00”i.ToString("00")接近但在int为正时不添加+号。有没有办法在不明确区分的情况下做到这一点i>=0和i? 最佳答案 试试这个:i.ToString("+00;-00;+00");当用分号(;)分隔时,第一部分将应用于正值,第二部分将应用于负值,第三部分将应用于零(0)。请注意,如果您希望零的格式与正数相同,则可以省略第三部分。如果您希望负数的格式与正数的格式相同,但希望零的格式不同,则也可以省略第二部

c# - 带有前导零的 int.Parse()

如何防止下面的代码抛出FormatException。我希望能够将带有前导零的字符串解析为整数。有没有一种干净的方法可以做到这一点?stringvalue="01";inti=int.Parse(value); 最佳答案 您的代码为我运行,没有FormatException(一旦您正确地使用了该方法):stringvalue="01";inti=int.Parse(value);但这确实敲响了警钟;这是我多年前遇到的一个问题,Microsoft将其视为针对Windows(而非.NET)本地化组件的错误。要测试您是否看到了这一点,请运