草庐IT

invoke-expression

全部标签

c# - C#调用BeginInvoke/Invoke时如何获取返回值

我有这个应该是线程安全的小方法。一切正常,直到我希望它具有返回值而不是无效。调用BeginInvoke时如何获取返回值?publicstaticstringreadControlText(ControlvarControl){if(varControl.InvokeRequired){varControl.BeginInvoke(newMethodInvoker(()=>readControlText(varControl)));}else{stringvarText=varControl.Text;returnvarText;}}编辑:我猜想在这种情况下拥有BeginInvoke并不

c# - 在 C# 中,Expression API 是否比 Reflection 更好

现在,我正在研究C#ExpressionAPI。所以我可以使用一些帮助来理解它是如何工作的,包括表达式和反射之间的区别。我还想了解表达式是否只是句法糖分,还是它们确实比反射更好性能方面?我们将不胜感激很好的例子以及指向好的文章的链接。:-) 最佳答案 关于调用一个方法:直接调用在速度方面无可匹敌。使用ExpressionAPI在全局上类似于使用Reflection.Emit或Delegate.CreateDelegate速度方式(可以测量微小差异;一如既往地优化速度没有衡量标准和目标是没有用的)。它们都生成IL,框架会在某个时候将其

c# - 运行时的 Expression.Lambda 和查询生成,最简单的 "Where"示例

我试图在运行时生成一个简单的Lambda表达式,但没有成功……就像这样:varresult=queryableData.Where(item=>item.Name=="Soap")这是我的示例类和一个可查询的夹具:publicclassItem{publicintId{get;set;}publicstringName{get;set;}}IQueryablequeryableData=...;然后我在运行时生成一个lambda表达式正确的代码如下://"item"in"item=>..."varitem=Expression.Parameter(typeof(Item),"item"

c# - 如何检查两个 Expression<Func<T, bool>> 是否相同

这个问题在这里已经有了答案:Mostefficientwaytotestequalityoflambdaexpressions(5个答案)关闭9年前。是否有可能找出两个表达式是否相同?如给出以下四个表达式:Expression>a=x=>false;Expression>b=x=>false;Expression>c=x=>true;Expression>d=x=>x==5;那么,至少我们可以看到:a==ba!=ca!=d但是我能做些什么来在我的代码中找到它吗?看了一下msdn库,上面写着Equals:DetermineswhetherthespecifiedObjectisequal

c# - C# : "an expression tree may not contain a base access" - why not? 错误

我正在调用一个接受Expression>的方法.作为我传递的表达式的一部分:this.Bottom==base.lineView.Top编译器给我一个错误anexpressiontreemaynotcontainabaseaccess所以我干脆改成了this.Bottom==this.lineView.Top因为该成员无论如何都受到了保护,现在可以使用了。但是这个错误真的让我很困惑:为什么这个base有问题吗?特别是如果使用this相反会工作但语法上是相同的结果(访问相同的变量)? 最佳答案 查看System.Linq.Expres

c# - SQL Express 连接字符串 : mdf file location relative to application location

我正在使用SQLExpress数据库作为c#单元测试项目的一部分。我的数据库位于此处:./Databases/MyUnitTestDB.mdf我想在app.config中使用相对路径或变量,而不是将连接字符串定义为:AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf我看到了|DataDirectory|的使用,但我认为这仅适用于Web应用程序是否正确?我想在应用程序配置文件中控制它,因为在生产中应用程序使用托管的sql数据库。 最佳答案

c# - Visual C# 2010 Express 中的单元测试?

VisualC#2010Express是否具有单元测试功能? 最佳答案 如前所述,Express版本没有任何内置功能,也不允许为此功能添加插件,但您可以使用外部工具,例如NUnit.您还可以设置一个命令以从VisualStudioExpress中的“工具->外部工具”菜单选项运行,并根据需要从中运行您的测试运行器。Here是一个显示如何使用VSC#2008Express执行此操作的链接(向下滚动到末尾),但我认为它也适用于2010年。Hereisanewworkinglink. 关于c#

c# - 错误 : "The specified LINQ expression contains references to queries that are associated with different contexts"

我从LINQ查询中收到标题中显示的错误,该查询包含来自两个不同edmx文件的两个表。这是查询:varquery=(fromaindb1.Table1joinbindb1.Table2ona.Idequalsb.Idorderbya.Statuswhereb.Id==1&&a.Status=="new"selectnew{Id=a.Id,CompanyId=(fromcindb2.Companywheres.Id==a.Idselectnew{c.CompanyId})});db1和db2是与两个不同的edmx文件关联的上下文。我该如何克服这个错误? 最佳答案

c# - 用什么? Tao、SharpGL、OpenTK、DirectX P/Invoke、XNA、MDX、SlimDX、Windows API 编解码器包

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion在过去,这很容易;你制作了自己的3D东西,然后是DirectX,然后是OpenGL。对于.Net开发人员来说,MDX很不错。然后XNA接管了MDX,但它不一样。XNA似乎非常以游戏为中心,具有固定模型和内容的所有内容流水线和预加载。那么我们现在处于什么位置?经过几天的研究/试验和错误后,我觉得到处都能找到开发一半的库、有开销的库、严重的限制或过于复杂的库。我想做“徒手”3D的东西。例如在3

c# - 为什么我得到 'One or more types required to compile a dynamic expression cannot be found.' ?

我有一个我从中更新的项目.NET3.5MVCv2到.NET4.0MVCv3编译当我尝试使用或设置@ViewBag.Title属性时出现错误。Oneormoretypesrequiredtocompileadynamicexpressioncannotbefound.AreyoumissingreferencestoMicrosoft.CSharp.dllandSystem.Core.dll?我做了以下事情已关注upgradesteps在Project/Properties/Application选项卡中将目标框架设置为.NETFramwework4添加了System.Core框架man