草庐IT

dynamic-values

全部标签

c# - 打开可空 bool 值 : case goes to null when value is true

我意识到处理可空类型的正确方法是使用HasValue属性。但我想知道为什么以下switch语句会在null情况下而不是默认情况下中断。使用VS2015C#4.0。另一台使用VS2010C#4.0的计算机没有同样的问题。privatevoidTesting(){bool?boolValue=true;switch(boolValue){casenull:break;//eventhoughvalueistrue,coderunsheredefault:break;}}编辑:观察到任何Nullable的行为如果只有caseNull和default已指定。 最佳答

c# - CodeContracts : Boolean condition evaluates to a constant value, 为什么?

我收到此警告但无法找出问题...CodeContracts:warning:TheBooleanconditiond1.Count!=d2.Countalwaysevaluatestoaconstantvalue.Ifit(oritsnegation)appearinthesourcecode,youmayhavesomedeadcodeorredundantcheck代码如下:publicstaticboolDictionaryEquals(IDictionaryd1,IDictionaryd2){if(d1==d2)returntrue;if(d1==null||d2==null)

C# 4.0 'dynamic' 没有设置 ref/out 参数

我正在试验DynamicObject。我尝试做的一件事是设置ref/out参数的值,如下面的代码所示。但是,我无法正确设置Main()中的i和j的值(即使它们在TryInvokeMember())。有谁知道如何使用ref/out参数调用DynamicObject对象并能够检索方法中设置的值?classProgram{staticvoidMain(string[]args){dynamicproxy=newProxy(newTarget());inti=10;intj=20;proxy.Wrap(refi,refj);Console.WriteLine(i+":"+j);//Print"

c# - 在C#中使用 'dynamic'实现访客模式

我有一个应用程序,我在其中对一系列元素执行操作,操作的确切性质取决于所操作元素的类型。由于封装的原因,不宜由元素来实现操作;这意味着它不能是元素类型的虚拟方法,因此“标准”多态性不起作用。我提出了previousquestion与此相关,并被告知这被称为访问者模式。我以前总是根据对象的类型使用if/elseif调度程序方法来实现它,然后调用适当的实现。然而,最近,我注意到使用dynamic关键字也可以完成同样的事情,如下所示:privatevoidReconcileTips(){foreach(varstepin_definition.Steps){ReconcileTips((dyn

c# - 在 Dynamic Linq Order By 上保留 NULL 行

我正在使用下面的代码片段来动态排序我的Linq查询并且效果很好。我不擅长反射或复杂的linq查询,但我需要一种方法,当使用升序时,NULL值在最后,反之亦然。因此,如果我的属性名称是一个整数并且列值是1、3、5,则默认情况下所有NULL行都将位于末尾,而不是开头。我可以向这个表达式添加什么来实现它?此代码适用于EntityFramework,但仍需要进行NULL比较。示例list.OrderBy("NAMEDESC").ToList()类publicstaticclassOrderByHelper{publicstaticIOrderedQueryableThenBy(thisIEnu

c# - 在 Linq-To-Sql 中避免 "Nullable object must have a value."

我有一个这样的方法查询:publicIListGetBusinessObject(Guid?filterId){using(vardb=newL2SDataContext()){varresult=fromboindb.BusinessObjectswhere(filterId.HasValue)?bo.Filter==filterId.value:trueorderbybo.NameselectSqlModelConverters.ConvertBusinessObject(bo);returnresult.ToList();}}在运行时,这会抛出一个System.InvalidOp

c# - GetMonthName : Valid values are between 1 and 13, 包括在内。为什么?

我不小心将0传递给DateTimeFormatInfo的GetMonthName方法:DateTimeFormatInfoinfo=newDateTimeFormatInfo();varmonthName=info.GetMonthName(0);并得到一个System.ArgumentOutOfRangeException错误消息:有效值在1到13之间,包括在内。传入1到12将返回“January”到“December”,但传入13将返回一个空字符串。我明白为什么月份数字不是零索引的,但是第13个月是做什么用的? 最佳答案 这是因

c# - 将 DBNull.Value 和空文本框值传递给数据库

这个问题在这里已经有了答案:HowdoIParameterizeanullstringwithDBNull.Valueclearlyandquickly(8个答案)关闭8年前。我的页面上有一些文本框可以为空,因为它们是可选的,而且我有这个DAL代码parameters.Add(newSqlParameter("@FirstName",FirstName));parameters.Add(newSqlParameter("@LastName",LastName));parameters.Add(newSqlParameter("@DisplayName",DisplayName));pa

c# - 我可以在 .NET/C# 中为 Microsoft Dynamics AX 编码吗?

我是一名C#开发人员,想开始学习DynamicsAX。请指导我能否在DynamicsAX中使用我的.net/C#技能(API知识)?我知道AX是用X++开发的,但有人告诉我这是可能的。请指导我AX是否具有Web界面或只是一个桌面应用程序。 最佳答案 2011年8月,DynamicsAX2012发布。它现在支持.NET,因此您现在可以在VisualStudio和任何.NET语言中进行开发。阅读DynamicsAX团队的这篇博文以获取介绍:WelcometoVisualStudioand.NETdevelopercommunity这是来

c# - 流利的断言 : Assert one OR another value

使用流畅的断言,我想断言给定的字符串包含两个字符串之一:actual.Should().Contain("oneWay").Or().Should().Contain("anotherWay");//eitervalueshouldpasstheassertion.//forexample:"youmaydoitoneWay."shouldpass,but//"youmaydoitthisWay."shouldnotpass只有当两个值都不包含时,断言才会失败。这不起作用(甚至无法编译),因为没有Or()运算符。我现在是这样做的:boolisVariant1=actual.Contai