【发布时间】:2012-05-05 22:26:15
【问题描述】:
此示例给出“找不到类型或命名空间名称'MyType'(您是否缺少 using 指令或程序集引用?)”
using MyType = System.Func<System.Int32, System.Tuple<System.Int32, MyType>>;
是否可以声明这样的递归类型?
【问题讨论】:
-
我通常不会问这个,但是……为什么?
-
我只是想在 C# 中声明演员模型的最小编码,所以我想使用递归函数别名来模拟演员的行为改变性质。
-
我已经考虑了几分钟,但我怀疑你可能想要某种通用工厂,例如一个
CreateActor<T>,它返回一个带有public Func<int, Tuple<int, T>> action;的对象,但我没有想到任何具体的东西。 -
是的,我想我得到了相同的结论来制定下面的元组实例化。不得不注入一个惰性求值步骤来中断递归,我猜工厂类型也算。
-
出于好奇,我最终只使用了一个接口: public interface Behavior { Behavior Recieve(Message message, Action
activator); }
标签: c# using-directives type-alias