草庐IT

null_object

全部标签

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

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

c# - 无法添加对 'Microsoft Windows Installer Object Library' 的引用

我无法使用VS2012添加对“MicrosoftWindows安装程序对象库”的引用。任何想法,什么可能导致这个问题?当我尝试创建对COM组件的引用时,我收到此错误消息“无法添加对‘MicrosoftWindowsInstallerObjectLibrary’的引用”。VS工程为基础类库(c#x86) 最佳答案 在VisualStudio中转到引用>添加引用...>COM>浏览...>%WINDIR%\system32\msi.dll。在VS2012上为我工作。 关于c#-无法添加对'M

c# - 如何对 Object 类型的属性使用 ShouldSerialize[MemberName]() 方法?

我尝试使用Newtonsoft.Json中的ShouldSerialize方法来阻止没有为其属性分配新值的类型对象的属性。但我不知道如何实现它,所以请帮我解决这个问题......这是示例代码publicclassSample1{publicStringname{get;set;}publicintId{get;set;};}这是我的类,包含上述类作为其属性之一publicclassContainer{publicStringCname{get;set;}publicSample1Sample{get;set;};publicboolShouldSerializeSample(){//W

c# - : Dictionary<string, object> 或 Dictionary<enum,object> 哪个更快/更有效?

enum类型用作字典键时是否比string类型更快/更有效?IDictionaryorIDictionary事实上,哪种数据类型最适合作为字典键,为什么?请考虑以下事项:注意:为简单起见,只有5个属性structMyKeys{publicstringIncomplete="IN";publicstringSubmitted="SU";publicstringProcessing="PR";publicstringCompleted="CO";publicstringClosed="CL";}和enumMyKeys{Incomplete,Submitted,Processing,Comp

c# - 事件参数; "sender as Object"或 "sender as T"?

当我为我的业务对象编写公共(public)事件时,除了额外的特定参数外,我已经习惯了始终将实例作为“发送者作为对象”传递。我现在只是问自己为什么我不指定类?所以对于有更多经验的你;您是否曾经在事件中作为发件人传递不同的类别?如果是这样,您的决策标准是什么时候可以/不可以? 最佳答案 不要太极端。EventHandler(objectsender,EventArgse)有一个对象发送器,所以我们可以在很多情况下使用它。但这并不意味着强类型发件人是邪恶的。当此委托(delegate)不会被广泛使用(如EventHandler)时,强类型

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# - SQL 服务器 : invalid object name in query execution

我正在尝试执行Insert语句,但一直收到Invalidobjectname错误。这是我的代码:publicstringaddNewComment(intuserID,intpageID,stringtitle,stringcomment){stringquery="INSERTINTOdbo.nokernok_kommentarer(userID,pageID,commentTitle,comment)"+"VALUES("+userID+","+pageID+",'"+title+"','"+comment+"')";adapter.InsertCommand=newSqlComm

C# 数据库访问 : DBNull vs null

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