// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== namespace System { using Microsoft.Singularity; #if !MINRUNTIME using Microsoft.Singularity.Io; #endif using System; using System.Text; using System.Globalization; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // Provides static fields for console input and output. Use // Console.In for input from the standard input stream (stdin), // Console.Out for output to stdout, and Console.Error // for output to stderr. If any of those console streams are // redirected from the command line, these streams will be redirected. // A program can also redirect its own output or input with the // SetIn, SetOut, and SetError methods. // // The distinction between Console.Out and Console.Error is useful // for programs that redirect output to a file or a pipe. Note that // stdout and stderr can be output to different files at the same // time from the DOS command line: // // someProgram 1> out 2> err // //| public sealed class Console { private Console() { throw new NotSupportedException("NotSupported_Constructor"); } static Console() { } private static void WriteInternal(char[] buffer, int index, int count) { #if !MINRUNTIME ConsoleOutput.Write(buffer, index, count); #else for (int i = 0; i < count; i++) { DebugStub.Print(buffer[index + i]); } #endif } private static void WriteInternal(String value) { #if !MINRUNTIME ConsoleOutput.Write(value); #else DebugStub.Print(value); #endif } private static void WriteNewLine() { WriteInternal(Environment.NewLine); } //| public static void WriteLine() { WriteNewLine(); } //| public static void WriteLine(String value) { WriteInternal(value); WriteNewLine(); } //| public static void WriteLine(bool value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(char value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(char[] buffer) { WriteInternal(buffer, 0, buffer.Length); WriteNewLine(); } //| public static void WriteLine(char[] buffer, int index, int count) { WriteInternal(buffer, index, count); WriteNewLine(); } //| public static void WriteLine(decimal value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(double value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(float value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(int value) { WriteInternal(value.ToString()); WriteNewLine(); } //| [CLSCompliant(false)] public static void WriteLine(uint value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(long value) { WriteInternal(value.ToString()); WriteNewLine(); } //| [CLSCompliant(false)] public static void WriteLine(ulong value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(Object value) { WriteInternal(value.ToString()); WriteNewLine(); } //| public static void WriteLine(String format, Object arg0) { WriteInternal(String.Format(format, arg0)); WriteNewLine(); } //| public static void WriteLine(String format, Object arg0, Object arg1) { WriteInternal(String.Format(format, arg0, arg1)); WriteNewLine(); } //| public static void WriteLine(String format, Object arg0, Object arg1, Object arg2) { WriteInternal(String.Format(format, arg0, arg1, arg2)); WriteNewLine(); } //| public static void WriteLine(String format, params Object[] args) { WriteInternal(String.Format(format, args)); WriteNewLine(); } //| public static void Write(String format, Object arg0) { WriteInternal(String.Format(format, arg0)); } //| public static void Write(String format, Object arg0, Object arg1) { WriteInternal(String.Format(format, arg0, arg1)); } //| public static void Write(String format, Object arg0, Object arg1, Object arg2) { WriteInternal(String.Format(format, arg0, arg1, arg2)); } //| public static void Write(String format, params Object[] args) { WriteInternal(String.Format(format, args)); } //| public static void Write(bool value) { WriteInternal(value.ToString()); } //| public static void Write(char value) { WriteInternal(value.ToString()); } //| public static void Write(char[] buffer) { WriteInternal(buffer, 0, buffer.Length); } //| public static void Write(char[] buffer, int index, int count) { WriteInternal(buffer, index, count); } //| public static void Write(double value) { WriteInternal(value.ToString()); } //| public static void Write(decimal value) { WriteInternal(value.ToString()); } //| public static void Write(float value) { WriteInternal(value.ToString()); } //| public static void Write(int value) { WriteInternal(value.ToString()); } //| [CLSCompliant(false)] public static void Write(uint value) { WriteInternal(value.ToString()); } //| public static void Write(long value) { WriteInternal(value.ToString()); } //| [CLSCompliant(false)] public static void Write(ulong value) { WriteInternal(value.ToString()); } //| public static void Write(Object value) { WriteInternal(value.ToString()); } //| public static void Write(String value) { WriteInternal(value); } public static int Read() { #if !MINRUNTIME return ConsoleInput.ReadChar(); #else return -1; #endif } public static string ReadLine() { #if !MINRUNTIME return ConsoleInput.ReadLine(); #else return ""; #endif } } }