我想使用指针动态控制代码执行,基本上是没有堆栈帧的函数指针。执行不会返回到调用位置,而是返回到单个点。
TopOfLoop:
...
Jump(x)
x1:
...
continue
x2:
...
continue
etc.
这可能在c#中吗?感谢。
答案 0 :(得分:2)
也许使用goto
声明?
MSDN上的参考:http://msdn.microsoft.com/en-us/library/13940fs2.aspx
虽然,不建议使用编码方式。请尝试使用代理:
Func<T,TResutl> or Action<T>
using System;
public class LambdaExpression
{
public static void Main()
{
Func<string, string> convert = s => s.ToUpper();
string name = "RIA Guy";
Console.WriteLine(convert(name));
}
}
答案 1 :(得分:1)
就函数指针而言,您可能希望查看c#中的委托。至于其余部分,其他人已经涵盖了这一点。
答案 2 :(得分:1)
这看起来像SWITCH会起作用,它会避免代码中的“goto”(虽然它可能会编译相同的)。
答案 3 :(得分:0)
您可以使用goto。我不会,但它会做你想要的。
答案 4 :(得分:0)
您当然可以通过回调来调用委托,但我不确定如何在goto之外完成“执行不返回调用位置”部分。