private static void Bar(__arglist)
    {
        ArgIterator argIterator = new ArgIterator(__arglist);

        while (argIterator.GetRemainingCount() > 0)
        {
            HiddenFeatureserence HiddenFeatureserence = argIterator.GetNextArg();
            object obj = HiddenFeatureserence.ToObject(HiddenFeatureserence);
            //Console.Out.WriteLine(obj);
            printf("%s\n", __arglist(obj.ToString()));
        }
    }
    private static void Foo(__arglist)
    {
        ArgIterator argIterator = new ArgIterator(__arglist);

        //for (int remainingCount = 0; remainingCount < argIterator.GetRemainingCount(); ++remainingCount)
        for (int remainingCount = argIterator.GetRemainingCount(); remainingCount > 0; --remainingCount)
        {
            HiddenFeatureserence HiddenFeatureserence = argIterator.GetNextArg();
            object obj = HiddenFeatureserence.ToObject(HiddenFeatureserence);
            //Console.Out.WriteLine(obj);
            printf("%s\n", __arglist(obj.ToString()));
        }
    }