草庐IT

ACTION_DISCOVERY_STARTED

全部标签

c# - Action(arg) 和 Action.Invoke(arg) 之间的区别

staticvoidMain(){ActionmyAction=SomeMethod;myAction("HelloWorld");myAction.Invoke("HelloWorld");}staticvoidSomeMethod(stringsomeString){Console.WriteLine(someString);}上面的输出是:HelloWorldHelloWorld现在我的问题是这两种调用Action的方式有什么区别(如果有)?一个比另一个好吗?什么时候用哪个?谢谢 最佳答案 所有委托(delegate)类型都有

c# - 无法将 Action<object, EventArgs> 转换为 EventHandler?

我正在连接一个事件以使用需要在触发后自行删除的lambda。我无法通过将lambda内联到+=事件(没有可访问的变量用于删除事件)来做到这一点,所以我设置了一个Action变量并将lambda移到那里。主要错误是它无法转换Action到事件处理程序。我认为lambda表达式可以隐式转换为事件处理程序,为什么这行不通? 最佳答案 Actiona=(o,ea)=>{};EventHandlere=a.Invoke; 关于c#-无法将Action转换为EventHandler?,我们在Stac

c# - 在 ASP.NET MVC 4 C# Code First 中指定 ON DELETE NO ACTION

如何在我的模型设计中指定ONDELETENOACTION外键约束?目前,我有:publicclassStatus{[Required]publicintStatusId{get;set;}[Required][DisplayName("Status")]publicstringName{get;set;}}publicclassRestuarant{publicintRestaurantId{get;set;}[Required]publicstringName{get;set;}[Required][EmailAddress]publicstringEmail{get;set;}[R

c# - 参数 Action<T1, T2, T3> 其中 T3 可选

我有以下代码:publicstaticMyMethod(){...DosomethingProtectedMethod(param1,param2);...Dosomething}protectedstaticvoidProtectedMethod(IEnumerableparam1,stringparam2,intparam3=1){...Dosomething}注意可选的param3参数。现在由于很多原因,我需要将MyMethod方法的代码提取到它自己的类中,但是我无法用它提取ProtectedMethod,因为所有的类都继承自这个类,我需要保持小的变化,孤立。所以我想我可以在新类

c# - Action 参数命名

使用提供的默认路由,我不得不将我的参数命名为“id”。这对我的很多ControllerActions都很好,但我想在某些地方使用一些更好的变量命名。有没有我可以使用的某种属性,以便我可以在我的Action签名中包含更有意义的变量名称?//DefaultRoute:routes.MapRoute("Default",//Routename"{controller}/{action}/{id}",//URLwithparametersnew{controller="Home",action="Index",id=""}//Parameterdefaults);//ActionSignatu

c# - Entity Framework 核心 : A second operation started on this context before a previous operation completed

我正在使用EntityFrameworkCore开发ASP.NetCore2.0项目在我的列表方法之一中出现了这个错误:InvalidOperationException:Asecondoperationstartedonthiscontextbeforeapreviousoperationcompleted.Anyinstancemembersarenotguaranteedtobethreadsafe.Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()这是我的方法:[Ht

c# - 当 Action 重载可用时,为异步 lambda 函数显式使用 Func<Task>

阅读this关于C#5的异步/等待的一些陷阱的博客文章。它在Gotcha#4中提到了一些非常深刻的东西,这是我以前没有想到的。简而言之,它涵盖了这样一种情况:您有一个方法有两个重载,一个接受Action。一个需要Func(例如Task.Run)。这个问题的根源在于asyncvoid方法应该只用于事件处理程序,然后帖子继续描述以下场景-当像下面这样的lambda函数可以编译为Func时,编译器会推断出什么?和一个Action:Task.Run(async()=>{awaitTask.Delay(1000);});因为Task.Run有两个Task.Run(Func)的签名和Task.Ru

c# - 有没有一种优雅的方式来重复一个 Action ?

在C#中,使用.NETFramework4,是否有一种优雅的方法可以将相同的操作重复确定的次数?例如,而不是:intrepeat=10;for(inti=0;i我想写这样的东西:ActiontoRepeat=()=>{Console.WriteLine("HelloWorld.");this.DoSomeStuff();};toRepeat.Repeat(10);或:Enumerable.Repeat(10,()=>{Console.WriteLine("HelloWorld.");this.DoSomeStuff();});我知道我可以为第一个示例创建我自己的扩展方法,但是否存在可以

c# - 检测 action 是 POST 还是 GET 方法

在MVC3中,是否可以确定操作是POST还是GET方法的结果?我知道您可以使用[HttpPost]和[HttpGet]修饰操作,以便在其中一个发生时触发特定操作。我想做的是关闭这些属性并以编程方式确定是哪个属性导致了操作。原因是,由于我的搜索页面的架构方式,我将搜索模型存储在TempData中。初始搜索导致对搜索结果页面的POST,但分页链接都只是指向“/results/2”(第2页)的链接。他们检查TempData以查看模型是否在其中,如果是,则使用它。当有人使用后退按钮转到搜索表单并重新提交时,这会导致问题。它仍在使用TempData中的模型,而不是使用新的搜索条件。因此,如果它是

c# - “委托(delegate) 'System.Action' 不接受 0 个参数。”这是 C# 编译器错误(lambdas + 两个项目)吗?

考虑下面的代码。看起来像完全有效的C#代码,对吗?//ProjectBusingSystem;publicdelegatevoidActionSurrogate(ActionaddEvent);//publicdelegatevoidActionSurrogate2();//UsingActionSurrogate2insteadofSystem.Actionresultsinthesameerror//Usingadummyparameter(Action)resultsinthesameerror//ProjectApublicstaticclassClass1{publicsta