相关疑难解决方法(0)

C#中面向方面编程

是否有任何好的资源可以围绕面向方面编程?

PS:我需要了解AO编程,而不是.NET或C#可用的库或框架:)

.net c# aop

47
推荐指数
1
解决办法
4万
查看次数

封装Action <T>和Func <T>?

我正在尝试为某种IExecutable接口进行设计.我不会详细介绍,但重点是我有几个需要从基类执行的动作.它们可能采用不同的参数(没什么大不了的),它们可能/可能不会返回值.

到目前为止,这是我的设计:

public abstract class ActionBase
{
    // ... snip ...
}

public abstract class ActionWithResultBase<T>: ActionBase
{
    public abstract T Execute();
}

public abstract class ActionWithoutResultBase: ActionBase
{
    public abstract void Execute();
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的每个具体动作都需要来自ActionWithResultBase或ActionWithoutResult基础的孩子,但我真的不喜欢这样.如果我可以将Execute的定义移动到ActionBase,考虑到具体类可能会或可能不会返回值,我将实现我的目标.

有人告诉我这可以通过使用Func和Action完成,我完全同意,但是我找不到将其转换为单个类的方法,以便调用者知道操作是否将返回值或不.

简介:我想做的事情如下:

// Action1.Execute() returns something.
var a = new Action1();
var result = a.Execute();

// Action2.Execute() returns nothing.
var b = new Action2();
b.Execute();
Run Code Online (Sandbox Code Playgroud)

c# parameters action overloading func

11
推荐指数
1
解决办法
3580
查看次数

标签 统计

c# ×2

.net ×1

action ×1

aop ×1

func ×1

overloading ×1

parameters ×1