草庐IT

动态表

全部标签

c# - 构建动态 LINQ 表达式时如何检测 IsNull/NotNull?

我正在构建稍后计算的动态LINQ表达式。因此,例如,如果我想知道某个属性是否等于某个值,我会这样做://MemberExpressionproperty;//int?val;Expression.Equal(property,Expression.Constant(val))但是,我似乎找不到检测val是否为Null或NOTNull的方法。有人可以向我推荐该怎么做吗?我试过这个:Expression.Equal(property,Expression.Constant(null,property.Type));但显然,那是行不通的。 最佳答案

c# - 为什么即使只有一种可能的返回类型,方法调用表达式的类型也是动态的?

受此启发question.简短版本:如果只有一个M重载或所有重载,为什么编译器无法确定M(dynamicarg)的编译时类型M的重载具有相同的返回类型?根据规范,§7.6.5:Aninvocation-expressionisdynamicallybound(§7.2.2)ifatleastoneofthefollowingholds:Theprimary-expressionhascompile-timetypedynamic.Atleastoneargumentoftheoptionalargument-listhascompile-timetypedynamicandthepri

c# - 属性、索引器或动态成员访问不能作为 out 或 ref 参数传递

这个问题在这里已经有了答案:C#propertyandrefparameter,whynosugar?(9个回答)Apropertyorindexermaynotbepassedasanoutorrefparameter(9个回答)关闭9年前。您好,我无法弄清楚这一点。我有这些结构和类。structCircle{...}classPainting{Listcircles;publicListcircles{get{returncircles;}}}我正在尝试使用以下代码从绘画类外部修改其中一个圆圈:MutatePosition(refpainting.Circles[mutationI

c# - 如何在 XAML 中动态访问元素名称?

我有一个用户填写的XAML输入表单。我想验证这个表单。我有一个集合中的字段信息,我想遍历并检查每个字段。但是当它在字符串中时,我如何访问字段的名称,例如当fieldInformation.FieldName="CompanyName"我想检查"Field_CompanyName.Text"。伪代码:foreach(varfieldInformationin_fieldInformations){if(Field_{&fieldInformation.FieldName}.Text.Length>2){ErrorMessage.Text=String.Format("Thelengtho

c# - 动态生成列 mvvm

我尝试制作一个动态生成列的ListView。我使用mvvm模式。我该如何实现?在这个时刻,我只有静态列。 最佳答案 您可以使用转换器动态创建具有适当列的GridView。这是工作示例:主窗口.xaml主窗口.xaml.csusingSystem.Collections.Generic;usingSystem.Windows;namespaceWpfApplication1{//////InteractionlogicforMainWindow.xaml///publicpartialclassMainWindow:Window{pu

c# - 通过动态引用访问嵌套类的成员时发生 StackOverflowException

我已经定义了一个从BindingList派生的泛型类,并且有一个嵌套的非泛型类:classGeneric:BindingList.Inner>{publicclassInner{publicobjectFoo{get;set;}}}当尝试通过动态引用访问Value属性时,mscorlib中出现StackOverflowException,如下所示:dynamicd=newGeneric.Inner();varvalue=d.Foo;//StackOverflowExceptionvarvalue=d.Bar//StackOverflowExceptionaswell,nota//'Ru

c# - 空传播运算符和动态变量

我一直在研究C#6中的空传播运算符,并试图让它与dynamic类型的变量一起工作,但没有成功。考虑下面的代码,它编译但CLR在空传播应用于动态对象时在运行时抛出AccessViolationException。classSomeType{publicobjectSomeProperty{get;set;}staticvoidMain(){varobj=newSomeType(){SomeProperty="ABCD"};varp1=((dynamic)obj).SomeProperty;//OK,p1issetto"ABCD"varp2=((dynamic)obj)?.SomeProp

LINQ 和动态继承的 C# 编译错误

考虑以下代码(为了这个测试,它没有做任何特殊用途-它只是为了演示发生的错误)Dictionaryd=newDictionary(){{"a",123},{"b",Guid.NewGuid()},{"c","HelloWorld"}};d.Where(o=>o.Key.Contains("b")).ForEach(i=>Console.WriteLine(i.Value));//retunstheGuidvalue,asexpected.我想包装Dictionary使用继承:publicclassCustomDictionary:Dictionary{}下面是上面使用这个派生类的例子:C

C# - 在动态生成的程序集中引用类型

我正在尝试弄清楚当您动态生成程序集时是否有可能引用以前动态生成的程序集中的类型。例如:usingSystem;usingSystem.CodeDom.Compiler;usingSystem.Reflection;usingMicrosoft.CSharp;CodeDomProviderprovider=newCSharpCodeProvider();CompilerParametersparameters=newCompilerParameters();parameters.GenerateInMemory=true;CompilerResultsresults=provider.C

c# - Dapper - 如何使用动态对象

我正在使用Dapper从SQL进行查询,并有一个这样的动态查询:varreturns=conn.Query(dynamicQuery);然后当我循环浏览结果时,我想知道我正在处理的日期类型是什么,所以我尝试执行以下操作:foreach(varresultinresults){MessageBox.Show(result.GetType().ToString());}但它总是在MessageBox上失败并出现错误Cannotperformruntimebindingonanullreference。如果我改用它:varreturns=conn.Query(dynamicQuery);然后