РЕДАКТИРОВАТЬ: я неправильно прочитал ваш вопрос и не видел бит о том, чтобы хотеть NOP оператор с помощью необработанных манипуляций с памятью.Боюсь, это не рекомендуется, потому что, как говорит Раймонд Чен, GC перемещает вещи в памяти (отсюда и ключевое слово «закрепленный» в C #).Вы, вероятно, можете сделать это с помощью размышлений, но ваш вопрос говорит о том, что у вас нет четкого понимания CLR.В любом случае, вернемся к моему первоначальному неуместному ответу (где я думал, что вы просто хотели получить информацию об использовании делегатов):
C # не является языком сценариев;)
В любом случае, C # (иCLR) имеет «указатели на функции» - за исключением того, что они называются «делегатами» и имеют строгую типизацию, что означает, что вам нужно определить сигнатуру функции в дополнение к функции, которую вы хотите вызвать.
В вашем случае,у вас будет что-то вроде этого:
public static void Main(String[] args) {
Function1();
}
// This is the "type" of the function pointer, known as a "delegate" in .NET.
// An instance of this delegate can point to any function that has the same signature (in this case, any function/method that returns void and accepts a single String argument).
public delegate void FooBarDelegate(String x);
public static void Function1() {
// Create a delegate to Function2
FooBarDelegate functionPointer = new FooBarDelegate( Function2 );
// call it
functionPointer("bla");
}
public static void Function2(String x) {
Console.WriteLine(x);
}