草庐IT

def_delegate

全部标签

c# - 反射性能 - 创建委托(delegate)(属性 C#)

我在使用反射时遇到了性能问题。所以我决定为我的对象的属性创建委托(delegate),到目前为止得到了这个:TestClasscwp=newTestClass();varpropertyInt=typeof(TestClass).GetProperties().Single(obj=>obj.Name=="AnyValue");varaccess=BuildGetAccessor(propertyInt.GetGetMethod());varresult=access(cwp);staticFuncBuildGetAccessor(MethodInfomethod){varobj=Ex

c# - 反射性能 - 创建委托(delegate)(属性 C#)

我在使用反射时遇到了性能问题。所以我决定为我的对象的属性创建委托(delegate),到目前为止得到了这个:TestClasscwp=newTestClass();varpropertyInt=typeof(TestClass).GetProperties().Single(obj=>obj.Name=="AnyValue");varaccess=BuildGetAccessor(propertyInt.GetGetMethod());varresult=access(cwp);staticFuncBuildGetAccessor(MethodInfomethod){varobj=Ex

c# - 具有零参数的 Action 委托(delegate)

我在许多使用Action委托(delegate)的在线示例中看到了这一行:publiceventActionMyEvent;但是当我在自己的代码中尝试时,我得到了这个错误Usingthegenerictype'System.Action'requires'1'typearguments文档当然描述了一种没有任何类型参数的Action形式。我错过了什么? 最佳答案 扩展安德鲁斯的回答。在非3.5场景中使用Action是完全合法的。只需自己定义即可。publicdelegatevoidAction();

c# - 具有零参数的 Action 委托(delegate)

我在许多使用Action委托(delegate)的在线示例中看到了这一行:publiceventActionMyEvent;但是当我在自己的代码中尝试时,我得到了这个错误Usingthegenerictype'System.Action'requires'1'typearguments文档当然描述了一种没有任何类型参数的Action形式。我错过了什么? 最佳答案 扩展安德鲁斯的回答。在非3.5场景中使用Action是完全合法的。只需自己定义即可。publicdelegatevoidAction();

委托(delegate)与 OOP 的 C# 策略设计模式

我想知道在实现策略设计模式时使用委托(delegate)与OOP的优缺点是什么?您推荐使用哪一个?或者委托(delegate)解决什么样的问题?如果OOP更好,我们为什么要使用OOP?谢谢!-步 最佳答案 这两种技术都非常强大且有值(value)-以下是我对何时使用哪种技术的一些看法。在策略时使用接口(interface)/实现方法:保持状态需要配置使用依赖注入(inject)需要由IoC容器配置(想想ConnectionProvider)结合了多种职责(想想ADO.NET中的DataAdapter)作为单一方法太复杂或太长很可能被

委托(delegate)与 OOP 的 C# 策略设计模式

我想知道在实现策略设计模式时使用委托(delegate)与OOP的优缺点是什么?您推荐使用哪一个?或者委托(delegate)解决什么样的问题?如果OOP更好,我们为什么要使用OOP?谢谢!-步 最佳答案 这两种技术都非常强大且有值(value)-以下是我对何时使用哪种技术的一些看法。在策略时使用接口(interface)/实现方法:保持状态需要配置使用依赖注入(inject)需要由IoC容器配置(想想ConnectionProvider)结合了多种职责(想想ADO.NET中的DataAdapter)作为单一方法太复杂或太长很可能被

c# - 事件、委托(delegate)或接口(interface)?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion假设我有一个Monkey类,它有时需要获取一个Banana实例。猴子对提供香蕉的方式不感兴趣,但它确实启动了香蕉获取。现在我至少有三种可能的方法将我的猴子连接到香蕉供应商。最好的方法是什么?1。事件提出Monkey.BananaNeeded事件。事件处理程序设置BananaNeededEventArgs.Banana属性(property)。2。界面调用IBananaProvider.Ge

c# - 事件、委托(delegate)或接口(interface)?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion假设我有一个Monkey类,它有时需要获取一个Banana实例。猴子对提供香蕉的方式不感兴趣,但它确实启动了香蕉获取。现在我至少有三种可能的方法将我的猴子连接到香蕉供应商。最好的方法是什么?1。事件提出Monkey.BananaNeeded事件。事件处理程序设置BananaNeededEventArgs.Banana属性(property)。2。界面调用IBananaProvider.Ge

c# - 为什么 C# 不能使用内联匿名 lambda 或委托(delegate)?

这个问题在这里已经有了答案:WhymustalambdaexpressionbecastwhensuppliedasaplainDelegateparameter(9个回答)关闭9年前。我希望我的问题标题措辞恰当。在c#中,我可以使用lambda(作为委托(delegate))或旧的委托(delegate)语法来执行此操作:FuncfnHello=()=>"hello";Console.WriteLine(fnHello());FuncfnHello2=delegate(){return"hello2";};Console.WriteLine(fnHello2());那么,为什么我不能

c# - 为什么 C# 不能使用内联匿名 lambda 或委托(delegate)?

这个问题在这里已经有了答案:WhymustalambdaexpressionbecastwhensuppliedasaplainDelegateparameter(9个回答)关闭9年前。我希望我的问题标题措辞恰当。在c#中,我可以使用lambda(作为委托(delegate))或旧的委托(delegate)语法来执行此操作:FuncfnHello=()=>"hello";Console.WriteLine(fnHello());FuncfnHello2=delegate(){return"hello2";};Console.WriteLine(fnHello2());那么,为什么我不能