ToString() 공개 메소드

Return the current contents as a string.
public ToString ( ) : String
리턴 String
예제 #1
0
        /// <summary>
        /// Compare speed to StringBuilder.
        /// </summary>
        public static void SpeedTest()
        {
            Logger log = new Logger("CharBuffer: SpeedTest");

            log.Info("Starting...");

            char   c      = 'a';
            string s      = null;
            int    cycles = 1000000;

            // a sequence of common ops
            StringBuilder sb        = new StringBuilder();
            DateTime      startTime = HighResClock.Now;

            for (int i = 0; i < cycles; i++)
            {
                sb.Append(c);
                sb.Append(c);
                sb.Append(c);
                sb.Append(c);
                sb.Append("hello");
                s         = sb.ToString();
                sb.Length = 0;
            }
            log.Info("StringBuilder paces took: {0} us",
                     (HighResClock.Now - startTime).TotalMilliseconds * 1000.0 / cycles);

            // a sequence of common ops
            CharBuffer cb = new CharBuffer(16);             // match StringBuilder's default length

            startTime = HighResClock.Now;
            for (int i = 0; i < cycles; i++)
            {
                cb.Append(c);
                cb.Append(c);
                cb.Append(c);
                cb.Append(c);
                cb.Append("hello");
                s         = cb.ToString();
                cb.Length = 0;
            }
            log.Info("CharBuffer paces took: {0} us",
                     (HighResClock.Now - startTime).TotalMilliseconds * 1000.0 / cycles);

            log.Info("Done.");
        }
예제 #2
0
        /// <summary>
        /// Compare speed to StringBuilder.
        /// </summary>
        public static void SpeedTest()
        {
            Logger log = new Logger("CharBuffer: SpeedTest");
            log.Info("Starting...");

            char c = 'a';
            string s = null;
            int cycles = 1000000;

            // a sequence of common ops
            StringBuilder sb = new StringBuilder();
            DateTime startTime = HighResClock.Now;
            for (int i = 0; i < cycles; i++)
            {
                sb.Append(c);
                sb.Append(c);
                sb.Append(c);
                sb.Append(c);
                sb.Append("hello");
                s = sb.ToString();
                sb.Length = 0;
            }
            log.Info("StringBuilder paces took: {0} us",
                (HighResClock.Now - startTime).TotalMilliseconds * 1000.0 / cycles);

            // a sequence of common ops
            CharBuffer cb = new CharBuffer(16); // match StringBuilder's default length
            startTime = HighResClock.Now;
            for (int i = 0; i < cycles; i++)
            {
                cb.Append(c);
                cb.Append(c);
                cb.Append(c);
                cb.Append(c);
                cb.Append("hello");
                s = cb.ToString();
                cb.Length = 0;
            }
            log.Info("CharBuffer paces took: {0} us",
                (System.DateTime.UtcNow - startTime).TotalMilliseconds * 1000.0 / cycles);

            log.Info("Done.");
        }
예제 #3
0
        /// <summary>
        /// Simple self test.
        /// </summary>
        /// <returns>bool - true for test passed, false otherwise</returns>
        public static bool TestSelf()
        {
            Logger log = new Logger("CharBuffer: TestSelf");
            log.Info("Starting...");

            // Append
            CharBuffer cb = new CharBuffer();
            cb.Append('a'); cb.Append('b'); cb.Append('c');
            log.Info("cb after Append: '{0}'", cb);
            if (cb[0] != 'a') { log.Error("Append or indexer failed."); return (false); }
            if (cb[1] != 'b') { log.Error("Append or indexer failed."); return (false); }
            if (cb[2] != 'c') { log.Error("Append or indexer failed."); return (false); }

            // Append string
            cb.Append("_hello");
            log.Info("cb after Append string: '{0}'", cb);
            if (cb[4] != 'h') { log.Error("Append or indexer failed."); return (false); }

            // Clear
            cb.Clear();
            if (cb.Length != 0) { log.Error("Clear failed."); return (false); }
            log.Info("cb after Clear: '{0}'", cb);

            // Grow
            cb = new CharBuffer(0);
            for (int i = 0; i < 33; i++) cb.Append('a');
            log.Info("cb after Growth: '{0}'", cb);
            if (cb[32] != 'a') { log.Error("Append or indexer failed."); return (false); }

            // IndexOf
            cb.Clear();
            cb.Append("This is a sentence");
            if (cb.IndexOf('a') != 8) { log.Error("IndexOf failed."); return (false); }

            // remove
            cb.Remove(0);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb.IndexOf('a') != 7) { log.Error("IndexOf failed."); return (false); }

            cb.Remove(1);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb.IndexOf('i') != 3) { log.Error("IndexOf failed."); return (false); }

            cb.Remove(2, 4);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb[4] != 's') { log.Error("IndexOf failed."); return (false); }

            // use as a ring
            log.Info("Test ring buffer:");
            cb = new CharBuffer(16);
            for (int i = 0; i < 32; i++)
            {
                cb.Append("hello");
                if (!cb.ToString().Equals("hello")) { log.Error("Not hello after append."); return (false); }
                cb.Remove(0, 5);
                if (cb.Length != 0) { log.Error("Len wrong after remove."); return (false); }
            }

            log.Info("Done.");
            return (true);
        }
예제 #4
0
        /// <summary>
        /// Simple self test.
        /// </summary>
        /// <returns>bool - true for test passed, false otherwise</returns>
        public static bool TestSelf()
        {
            Logger log = new Logger("CharBuffer: TestSelf");

            log.Info("Starting...");

            // Append
            CharBuffer cb = new CharBuffer();

            cb.Append('a'); cb.Append('b'); cb.Append('c');
            log.Info("cb after Append: '{0}'", cb);
            if (cb[0] != 'a')
            {
                log.Error("Append or indexer failed."); return(false);
            }
            if (cb[1] != 'b')
            {
                log.Error("Append or indexer failed."); return(false);
            }
            if (cb[2] != 'c')
            {
                log.Error("Append or indexer failed."); return(false);
            }

            // Append string
            cb.Append("_hello");
            log.Info("cb after Append string: '{0}'", cb);
            if (cb[4] != 'h')
            {
                log.Error("Append or indexer failed."); return(false);
            }

            // Clear
            cb.Clear();
            if (cb.Length != 0)
            {
                log.Error("Clear failed."); return(false);
            }
            log.Info("cb after Clear: '{0}'", cb);

            // Grow
            cb = new CharBuffer(0);
            for (int i = 0; i < 33; i++)
            {
                cb.Append('a');
            }
            log.Info("cb after Growth: '{0}'", cb);
            if (cb[32] != 'a')
            {
                log.Error("Append or indexer failed."); return(false);
            }

            // IndexOf
            cb.Clear();
            cb.Append("This is a sentence");
            if (cb.IndexOf('a') != 8)
            {
                log.Error("IndexOf failed."); return(false);
            }

            // remove
            cb.Remove(0);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb.IndexOf('a') != 7)
            {
                log.Error("IndexOf failed."); return(false);
            }

            cb.Remove(1);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb.IndexOf('i') != 3)
            {
                log.Error("IndexOf failed."); return(false);
            }

            cb.Remove(2, 4);
            log.Info("cb after Remove: '{0}'", cb);
            if (cb[4] != 's')
            {
                log.Error("IndexOf failed."); return(false);
            }

            // use as a ring
            log.Info("Test ring buffer:");
            cb = new CharBuffer(16);
            for (int i = 0; i < 32; i++)
            {
                cb.Append("hello");
                if (!cb.ToString().Equals("hello"))
                {
                    log.Error("Not hello after append."); return(false);
                }
                cb.Remove(0, 5);
                if (cb.Length != 0)
                {
                    log.Error("Len wrong after remove."); return(false);
                }
            }

            log.Info("Done.");
            return(true);
        }