8 Şubat 2018 Perşembe

Console Sınıfı

Giriş
Şu satırı dahil ederiz.
using System; 
Şöyle de yapılabilir ancak ben sevmiyorum.
using static System.Console;
BackgroundColor Alanı
Şöyle yaparız.
Console.BackgroundColor = ConsoleColor.Red;
Beep metodu
Ses çıkartır
int frq = 425;
int duration = 500;

Console.Beep(frq, duration);
CancelKeyPress metodu - Ctrl+C'yi yakalamak
Windows'ta Linux/Unix'teki gibi sinyaller de yok. Ancak Ctrl+C aynı manada kullanılıyor.
Örnek
Şöyle yaparız.
Console.CancelKeyPress += (object sender, ConsoleCancelEventArgs e) =>
{
  ...
};
Örnek
Daha kısa yazmak için şöyle yaparız. e.Cancel = true ile terminalin kapanması engellenir.
Console.CancelKeyPress += (sender, e) => {
  ...
  e.Cancel = true;
};
Örnek
Bir AutoResetEvent'i kaldırmak için şöyle yaparız
static void Main(string[] args)
{
  Console.WriteLine("Press Ctrl-C to end");

  ...
  var autoResetEvent = new AutoResetEvent(false);
  Console.CancelKeyPress += (sender, eventArgs) =>
  {
    eventArgs.Cancel = true;
    autoResetEvent.Set();
  };

  autoResetEvent.WaitOne();
  Console.WriteLine("Job Scheduler Shutting Down");
 }
Örnek
Şöyle yaparız.
[DllImport("Kernel32")]
private static extern bool SetConsoleCtrlHandler(EventHandler handler, bool add);

private delegate bool EventHandler(CtrlType sig);
static EventHandler _handler;

enum CtrlType
{
  CTRL_C_EVENT = 0,
  CTRL_BREAK_EVENT = 1,
  CTRL_CLOSE_EVENT = 2,
  CTRL_LOGOFF_EVENT = 5,
  CTRL_SHUTDOWN_EVENT = 6
}

private static bool HandlerCallback(CtrlType sig)
{
  //here clean out, close files, close sockets, stop timers,etc
  return true;
}

_handler += new EventHandler(HandlerCallback);
SetConsoleCtrlHandler(_handler, true);

Clear metodu
Şöyle yaparız.
Console.Clear();
ForegroundColor Alanı - Renkli Çıktı
Örnek
şöyle yaparız
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WriteLine(text);
Örnek
Renkli çıktı gösterip, eski renge dönmek için şöyle yaparız.
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(...);
Console.ResetColor();
KeyAvailable Alanı
Şöyle yaparız.
if (Console.KeyAvailable)
{
  var consoleKey = Console.ReadKey(true);
  if (consoleKey.Key == ConsoleKey.Escape) {...}
}
KeyPress metodu
Anlamadım.
Console.Keypress()
Out Alanı
Şöyle yaparız.
TextWriter writer = Console.Out;
Read metodu
int döndürür. Şöyle yaparız. Örneğin 'A' girersek 65 alırız.
int i = Console.Read();
ReadKey metodu
Bu metod okunan karakteri console penceresinde gösterir. Bir ConsoleKeyInfo nesnesi dönüyor. Şöyle yaparız.
ConsoleKey response = Console.ReadKey().Key;
Okunan karaktere şöyle erişiriz.
char c = Console.ReadKey().KeyChar ;
veya ConsoleKeyInfo sabitlerinden birisi ile karşılaştırabiliriz.
ConsoleKey response = ...;
if (response != ConsoleKey.Y && response != ConsoleKey.N) {...}
ReadKey - Boolean
Okunan karakteri console penceresinde göstermemek için şöyle yaparız.
var consoleKey = Console.ReadKey(true);
Okunan karakteri console penceresinde göstermek için şöyle yaparız. Yani yukarıdaki ReadKey() ile aynı işi yapar.
ConsoleKey response;
response = Console.ReadKey(false).Key; // true is dont show, false is show
ReadLine metodu
Şöyle yaparız.
string line = Console.ReadLine();
ResetColor metodu
Renkleri console ilk açılırken ki haline geri getirir. Şöyle yaparız.
Console.ResetColor();
Şöyle yaparız.
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Write("White on blue,");
Console.ResetColor();
Console.Write("but this isn't.");
SetCursorPosition metodu
Şöyle yaparız. Konsolun ilk satırındaki 11. karaktere gider
Console.SetCursorPosition (11, 0);
SetError metodu
Console nesnesine ait errorstream belirtilen writer'a yönlendirilir. Şöyle yaparız.
TextWriter writer = ...;
Console.SetError (writer);
SetOut metodu
Console nesnesine ait outputstream belirtilen writer'a yönlendirilir. Şöyle yaparız.
TextWriter writer = ...;
Console.SetOut (writer);
TreatControlAsInput Alanı
Şöyle yaparız.
Console.TreatControlCAsInput = true;
Böylece Ctrl + C tuşunu okuyabiliriz.
var k = Console.ReadKey(true);
if ((k.Modifiers & ConsoleModifiers.Control) != 0)
{
  if ((k.Key & ConsoleKey.C) != 0)
  {
    ...
  }
}
Write metodu
Genelde flush ile kullanılır.
Console.Write("What is your name? ");
Console.Out.Flush();
var name = Console.ReadLine();
Ekrandaki bir karakteri silmek için şöyle yaparız.
Console.Write("\b");
WriteLine metodu
Şöyle yaparız.
Console.WriteLine("Press any key to stop...");



Hiç yorum yok:

Yorum Gönder