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");
        }
    }
}


-------------------------------------------------------------------------------------