return To index
C# Random Subroutine Sequencing ------------------------------- alcopaul/brigada ocho june 06, 2011 In HLL programs, instructions run from top to bottom, unless the programmer purposely uses goto commands. In C#, there's a way to make your program execute its instruction randomly. This is very hard to implement in other languages, me thinks. I thought that this is one way to change the static behavior of a program, which is usual in HLL. Anyway here's the source code. Just make a subroutine and add that to meths array. ---------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string[] meths = { "HH1", "HH2", "HH3", "HH4", "HH5", "HH6", "HH7", "HH8" }; Random rand = new Random(); for (int i = meths.Length - 1; i > 0; i--) { int n = rand.Next(i + 1); string temp = meths[i]; meths[i] = meths[n]; meths[n] = temp; } Assembly HostAsm = Assembly.GetExecutingAssembly(); Type type = HostAsm.GetType("ConsoleApplication1.Program"); object obj = Activator.CreateInstance(type); foreach (string j in meths) { type.InvokeMember(j, BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, null); } Console.ReadKey(); } public static void HH1() { Console.WriteLine("1st"); } public static void HH2() { Console.WriteLine("2nd"); } public static void HH3() { Console.WriteLine("3rd"); } public static void HH4() { Console.WriteLine("4th"); } public static void HH5() { Console.WriteLine("5th"); } public static void HH6() { Console.WriteLine("6th"); } public static void HH7() { Console.WriteLine("7th"); } public static void HH8() { Console.WriteLine("8th"); } } } -------------------------------------------------------------------------------------