草庐IT

null_or_a_id

全部标签

c# - 如何处理 null 或可选的 DLL 结构参数

如何处理使用pinvoke从C#调用的dll方法中的可选struct参数?例如,lpSecurityAttributesparameterhere不存在时应传递null。传递struct的正确方法似乎是使用ref,但它不能有可选参数,或者通常采用null.有什么方法可以实现? 最佳答案 你有几个选择1)使用class而不是struct我觉得这个方法最简单。只需声明struct作为class:[StructLayout(LayoutKind.Sequential)]publicclassCStruct{//member-list}然后

c# - 在构建服务器 : Release or Debug code? 上进行单元测试

在.NET(C#)中,使用调试/发布构建进行单元测试有什么优点/缺点吗?您通常使用哪种目标配置在构建服务器上进行单元测试?重要吗?关于代码覆盖率(对于这个,我猜需要调试版本)。 最佳答案 我建议运行发布代码。出于几个原因。1)这是客户将要使用的代码。2)某些代码具有特殊的调试条件,这会在调试版本和发布版本之间产生差异。 关于c#-在构建服务器:ReleaseorDebugcode?上进行单元测试,我们在StackOverflow上找到一个类似的问题: http

c# - 在 c# resharper 中建议 "conditional access", null 给我什么?

我使用Resharper来帮助处理语言功能,并且我有一个可以为null的DateTime字段。Resharper建议使用以下语法:TodayDate=paidDate?.ToString("d"),它看起来像一个标准的表达式,但我没有得到一个问号。我得到两个问号和冒号。如有解释,将不胜感激。当paidDate为null时会发生什么? 最佳答案 ?.是C#中引入的新功能,称为Null-conditionalOperators.它仅在paidDate时评估方法调用不为空,并返回null相反。这几乎等同于TodayDate=paidDat

c# - 为什么在没有约束的泛型方法上将可为 null 的值类型与 null 进行比较会比较慢?

我遇到了一个非常有趣的情况,在泛型方法中比较可为null的类型和null比比较值类型或引用类型慢234倍。代码如下:staticboolIsNull(Tinstance){returninstance==null;}执行代码为:int?a=0;stringb="A";intc=0;varwatch=Stopwatch.StartNew();for(inti=0;i上面代码的输出是:00:00:00.187982700:00:00.000877900:00:00.0008532如您所见,将可为空的int与null进行比较比比较int或字符串慢234倍。如果我添加具有正确约束的第二个重载,

c# - Null(在 C# 中)与 Nothing(在 vb.net 中)

C#NULL与vb.netNothing有何不同?Console.WriteLine(Nothing="")=>True对比Console.WriteLine(null=="");=>False我的理解是null和Nothing是一样的。但是上面的代码清楚地说明了它不是。VB.NET中C#null的等价物是什么? 最佳答案 您选择了littlebidcomplexexample来测试vb.net中的Nothing和c#中的null之间的区别来自关于Nothing的Visualbasic语言规范:Nothingisaspecialli

c# - long vs Guid for the Id (Entity),优缺点是什么

我正在asp.netmvc上做一个网络应用程序,我正在为我的实体在long和Guid数据类型之间进行选择,但我不知道哪个更好。有人说long快得多。Guid也可能有一些优势。有人知道吗? 最佳答案 什么时候GUID可能不合适GUID几乎总是会变慢,因为它们更大。这会使您的索引更大。这使您的表更大。这意味着如果您必须全部或部分扫描您的表,将花费更长的时间并且您将看到更少的性能。这是基于报告的系统中的一个巨大问题。例如,永远不会将GUID用作事实表中的外键,因为它的长度通常很重要,因为通常会部分扫描事实表以生成聚合。还要考虑使用“lon

c# - 在 Linq 的循环中添加 OR 表达式

我有数量可变的OR条件,我想将它们放在一个Linq查询中。如何在循环中执行此操作?基本上,最终的查询是:IQueryableQ;Q=Q.Where(q=>(condition1)||(condition2)||.....||(conditionN));类似于:For(inti=0;i(existingconditions)||(q.Value==i));}在没有最终表达式(Q)在其中嵌套Q的情况下,我可以使用什么语句来替换上面示例中的(现有条件)?谢谢。 最佳答案 您需要构建一个表示您感兴趣的所有条件的表达式树,并结合Express

C# 数据库访问 : DBNull vs null

我们在这里使用自己的ORM,并为我们所有的数据库表提供强类型包装器。我们还允许执行弱类型的临时SQL,但这些查询仍然通过同一个类从数据读取器中获取值。在调整该类以与Oracle一起工作时,我们遇到了一个有趣的问题。使用DBNull.Value还是null更好?使用DBNull.Value有什么好处吗?使用null似乎更“正确”,因为我们已经将自己与DB世界分开,但是有一些含义(例如,当值为null时,您不能盲目地使用ToString())所以这绝对是我们需要有意识地做出决定的事情。 最佳答案 我发现使用null比使用DBnull更好

c# - 使用 Assembly.GetType ("MyCompany.Class1.Class2") 返回 null

我正在尝试使用Assembly.GetType("MyCompany.Class1.Class2")从字符串中动态获取类型。Assembly.GetType("MyCompany.Class1");按预期工作。如果我将一个类嵌入到另一个类中,例如:namespaceMyCompany{publicclassClass1{//.....publicclassClass2{//.....}}}并尝试获取类型Class2Assembly.GetType("MyCompany.Class1.Class2")将返回一个空值。我正在使用.NETFrameworks3.5SP1有谁知道我做错了什么以

c# - 如果 yield return 从未发生,是否返回 null?

该方法通过yieldreturn语句返回IEnumerable。如果yield语句从未发生(它在条件逻辑中),该方法会返回null,还是会返回一个计数为0的Enumerable? 最佳答案 一个有效的IEnumerable,当您遍历它时不产生任何值。试想一下:您可以将IEnumerable生成器存储在一个变量中-代码本身只会在您实际遍历结果时执行。如果您有null,您如何执行代码?或者您如何知道该函数在不运行的情况下不会产生任何结果。 关于c#-如果yieldreturn从未发生,是否返