草庐IT

anonymous-delegates

全部标签

委托(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());那么,为什么我不能

c# - 是否可以在 C# 内置 Action<> 委托(delegate)中使用 ref 类型?

C#有内置委托(delegate)Action和Func.是否可以为此代表使用“ref”类型的参数?例如,这段代码:publicdelegatevoidDTest(refGuida);publiceventDTestETest;将编译。但是如果我使用Action,它不会编译:publiceventActionETest;有什么提示吗? 最佳答案 不,您不能对Action委托(delegate)使用按引用传递。虽然在框架中有作为Type的“通过引用传递的类型”的概念,但就C#而言,它并不是真正意义上的类型。ref是参数的修饰符,不是类

c# - 是否可以在 C# 内置 Action<> 委托(delegate)中使用 ref 类型?

C#有内置委托(delegate)Action和Func.是否可以为此代表使用“ref”类型的参数?例如,这段代码:publicdelegatevoidDTest(refGuida);publiceventDTestETest;将编译。但是如果我使用Action,它不会编译:publiceventActionETest;有什么提示吗? 最佳答案 不,您不能对Action委托(delegate)使用按引用传递。虽然在框架中有作为Type的“通过引用传递的类型”的概念,但就C#而言,它并不是真正意义上的类型。ref是参数的修饰符,不是类

c# - 直接调用委托(delegate)、使用 DynamicInvoke 和使用 DynamicInvokeImpl 之间有什么区别?

DynamicInvoke和DynamicInvokeImpl的文档说:Dynamicallyinvokes(late-bound)themethodrepresentedbythecurrentdelegate.我注意到DynamicInvoke和DynamicInvokeImpl采用对象数组而不是特定的参数列表(我猜这是后期绑定(bind)部分)。但这是唯一的区别吗?DynamicInvoke和DynamicInvokeImpl之间有什么区别。 最佳答案 直接调用它(Invoke(...)的简写)和使用DynamicInvoke

c# - 直接调用委托(delegate)、使用 DynamicInvoke 和使用 DynamicInvokeImpl 之间有什么区别?

DynamicInvoke和DynamicInvokeImpl的文档说:Dynamicallyinvokes(late-bound)themethodrepresentedbythecurrentdelegate.我注意到DynamicInvoke和DynamicInvokeImpl采用对象数组而不是特定的参数列表(我猜这是后期绑定(bind)部分)。但这是唯一的区别吗?DynamicInvoke和DynamicInvokeImpl之间有什么区别。 最佳答案 直接调用它(Invoke(...)的简写)和使用DynamicInvoke