Console Sınıf

Tanım

Konsol uygulamaları için standart giriş, çıkış ve hata akışlarını temsil eder. Bu sınıf devralınamaz.

public ref class Console abstract sealed
public ref class Console sealed
public static class Console
public sealed class Console
type Console = class
Public Class Console
Public NotInheritable Class Console
Devralma
Console

Örnekler

Aşağıdaki örnekte standart giriş ve çıkış akışlarından veri okuma ve veri yazma işlemleri gösterilmektedir. Bu akışların ve SetOut yöntemleri kullanılarak SetIn yeniden yönlendirilebileceğini unutmayın.

using namespace System;

int main()
{
   Console::Write( L"Hello " );
   Console::WriteLine( L"World!" );
   Console::Write( L"Enter your name: " );
   String^ name = Console::ReadLine();
   Console::Write( L"Good day, " );
   Console::Write( name );
   Console::WriteLine( L"!" );
}
// The example displays output similar to the following:
//       Hello World!
//       Enter your name: James
//       Good day, James!
using System;

public class Example {
    public static void Main()
    {
        Console.Write("Hello ");
        Console.WriteLine("World!");
        Console.Write("Enter your name: ");
        string name = Console.ReadLine();
        Console.Write("Good day, ");
        Console.Write(name);
        Console.WriteLine("!");
    }
}
// The example displays output similar to the following:
//       Hello World!
//       Enter your name: James
//       Good day, James!
Public Class Example
    Public Shared Sub Main()
        Console.Write("Hello ")
        Console.WriteLine("World!")
        Console.Write("Enter your name: ")
        Dim name As String = Console.ReadLine()
        Console.Write("Good day, ")
        Console.Write(name)
        Console.WriteLine("!")
    End Sub
End Class 
' The example displays output similar to the following:
'        Hello World!
'        Enter your name: James
'        Good day, James!
module Example

open System

[<EntryPoint>]
let main argv =
    Console.Write("Hello ")
    Console.WriteLine("World!")
    Console.Write("Enter your name: ")
    let name = Console.ReadLine()
    Console.Write("Good day, ")
    Console.Write(name)
    Console.WriteLine("!")
    0
    
// The example displays output similar to the following:
//       Hello World!
//       Enter your name: James
//       Good day, James!

Açıklamalar

Konsol, kullanıcıların bilgisayar klavyesi aracılığıyla metin girişi girerek ve bilgisayar terminalinden metin çıkışı okuyarak işletim sistemiyle veya metin tabanlı bir konsol uygulamasıyla etkileşime girdiği bir işletim sistemi penceresidir. Örneğin, Windows işletim sisteminde konsol Komut İstemi penceresi olarak adlandırılır ve MS-DOS komutlarını kabul eder. Console sınıfı, konsoldan karakter okuyan ve bu konsola karakter yazan uygulamalar için temel destek sağlar.

sınıfıyla Console geliştirme hakkında bilgi için aşağıdaki bölümlere bakın:

Konsol G/Ç Akışları

Bir konsol uygulaması başlatıldığında, işletim sistemi konsolla otomatik olarak üç G/Ç akışını ilişkilendirir: standart giriş akışı, standart çıkış akışı ve standart hata çıkış akışı. Uygulamanız standart giriş akışından kullanıcı girişini okuyabilir; standart çıkış akışına normal veri yazma; ve hata verilerini standart hata çıktı akışına yazın. Bu akışlar, uygulamanıza , Console.Outve Console.Error özelliklerinin değerleri Console.Inolarak sunulur.

Varsayılan olarak, özelliğin In değeri klavyeyi temsil eden bir System.IO.TextReader nesnedir ve ve Error özelliklerinin değerleri Out bir konsol penceresini temsil eden nesnelerdirSystem.IO.TextWriter. Ancak, bu özellikleri konsol penceresini veya klavyeyi temsil etmeyen akışlara ayarlayabilirsiniz; örneğin, bu özellikleri dosyaları temsil eden akışlar olarak ayarlayabilirsiniz. Standart girişi, standart çıkışı veya standart hata akışını yeniden yönlendirmek için sırasıyla , Console.SetOutveya Console.SetError yöntemini çağırınConsole.SetIn. Bu akışları kullanan G/Ç işlemleri eşitlenir; bu da birden çok iş parçacığının akışlardan okuyabileceği veya akışlara yazabileceği anlamına gelir. Başka bir deyişle, gibi normalde zaman uyumsuz olan yöntemler, TextReader.ReadLineAsyncnesne bir konsol akışını temsil ederse zaman uyumlu olarak yürütülür.

Not

Sınıfını Console , sunucu uygulamaları gibi katılımsız uygulamalarda çıkışı görüntülemek için kullanmayın. gibi Console.Write Console.WriteLine yöntemlere yapılan çağrıların GUI uygulamalarında hiçbir etkisi yoktur.

Console temel alınan akış bir konsola yönlendirildiğinde normal şekilde çalışan sınıf üyeleri, akışın bir dosyaya yeniden yönlendirilmesi durumunda bir özel durum oluşturabilir. Standart bir akışı yeniden yönlendirirseniz uygulamanızı özel durumları yakalayacak System.IO.IOException şekilde programla. Özel durum oluşturan System.IO.IOException bir işlem gerçekleştirmeden önce standart bir akışın yeniden yönlendirilip yönlendirilmeyeceğini belirlemek için , IsInputRedirectedve IsErrorRedirected özelliklerini de kullanabilirsinizIsOutputRedirected.

Bazen , Outve Error özellikleriyle temsil edilen akış nesnelerinin üyelerini Inaçıkça çağırmak yararlı olabilir. Örneğin, varsayılan olarak Console.ReadLine yöntemi standart giriş akışından girişi okur. Benzer şekilde, Console.WriteLine yöntemi verileri standart çıkış akışına yazar ve ardından konumunda Environment.NewLinebulunabilen varsayılan satır sonlandırma dizesi izler. Ancak sınıfı, Console standart hata çıkış akışına veri yazmak için karşılık gelen bir yöntem veya bu akışa yazılan verilerin satır sonlandırma dizesini değiştirmek için bir özellik sağlamaz.

Or Error özelliğini Out başka bir satır sonlandırma dizesine ayarlayarak TextWriter.NewLine bu sorunu çözebilirsiniz. Örneğin, aşağıdaki C# deyimi standart hata çıkış akışı için satır sonlandırma dizesini iki satır başı ve satır besleme dizisi olarak ayarlar:

Console.Error.NewLine = "\r\n\r\n";

Ardından aşağıdaki C# deyiminde WriteLine olduğu gibi hata çıkış akışı nesnesinin yöntemini açıkça çağırabilirsiniz:

Console.Error.WriteLine();

Ekran Arabelleği ve Konsol Penceresi

Konsolun birbiriyle yakından ilişkili iki özelliği, ekran arabelleği ve konsol penceresidir. Metin aslında konsolun sahip olduğu akışlardan okunur veya bu akışlara yazılır, ancak konsol tarafından sahip olunan ve ekran arabelleği olarak adlandırılan bir alandan okunmuş veya yazılmış gibi görünür. Ekran arabelleği konsolun bir özniteliğidir ve her kılavuz kesişiminin veya karakter hücresinin bir karakter içerebileceği satır ve sütunlardan oluşan dikdörtgen bir kılavuz olarak düzenlenir. Her karakterin kendi ön plan rengi vardır ve her karakter hücresinin kendi arka plan rengi vardır.

Ekran arabelleği, konsol penceresi olarak adlandırılan dikdörtgen bir bölge üzerinden görüntülenir. Konsol penceresi, konsolun başka bir özniteliğidir; bir işletim sistemi penceresi olan konsolun kendisi değildir. Konsol penceresi satırlar ve sütunlar halinde düzenlenir, ekran arabelleğinin boyutundan küçük veya buna eşit olur ve temel alınan ekran arabelleğinin farklı alanlarını görüntülemek için taşınabilir. Ekran arabelleği konsol penceresinden büyükse, konsol otomatik olarak kaydırma çubuklarını görüntüler, böylece konsol penceresi ekran arabelleği alanı üzerinde yeniden konumlandırılabilir.

İmleç, metnin okunduğu veya yazıldığı ekran arabelleği konumunu gösterir. İmleç gizlenebilir veya görünür hale getirilebilir ve yüksekliği değiştirilebilir. İmleç görünür durumdaysa, konsol penceresi konumu otomatik olarak taşınır ve böylece imleç her zaman görünümde olur.

Ekran arabelleğindeki karakter hücresi koordinatlarının kaynağı sol üst köşedir ve imlecin ve konsol penceresinin konumları bu orijine göre ölçülür. Konumları belirtmek için sıfır tabanlı dizinler kullanın; yani, en üstteki satırı 0. satır, en soldaki sütunu ise 0. sütun olarak belirtin. Satır ve sütun dizinleri için en büyük değer olur Int16.MaxValue.

Konsol İçin Unicode Desteği

Genel olarak konsol, sistem yerel ayarının varsayılan olarak tanımladığı geçerli konsol kodu sayfasını kullanarak girişi okur ve çıkışı yazar. Kod sayfası kullanılabilir Unicode karakterlerin yalnızca bir alt kümesini işleyebilir, bu nedenle belirli bir kod sayfası tarafından eşlenmeyen karakterleri görüntülemeye çalışırsanız, konsol tüm karakterleri görüntüleyemez veya bunları doğru şekilde temsil etmez. Aşağıdaki örnekte bu sorun gösterilmektedir. U+0410'dan U+044F'ye kadar kiril alfabesinin karakterlerini konsolda görüntülemeye çalışır. Örneği konsol kodu sayfası 437'yi kullanan bir sistemde çalıştırırsanız, Kiril karakterler kod sayfası 437'deki karakterlerle eşlenmediğinden, her karakter bir soru işareti (?) ile değiştirilir.

using System;

public class Example
{
   public static void Main()
   {
      // Create a Char array for the modern Cyrillic alphabet,
      // from U+0410 to U+044F.
      int nChars = 0x044F - 0x0410 + 1;
      char[] chars = new char[nChars];
      ushort codePoint = 0x0410;
      for (int ctr = 0; ctr < chars.Length; ctr++) {
        chars[ctr] = (char)codePoint;
        codePoint++;
      }

      Console.WriteLine("Current code page: {0}\n",
                        Console.OutputEncoding.CodePage);
      // Display the characters.
      foreach (var ch in chars) {
         Console.Write("{0}  ", ch);
         if (Console.CursorLeft >= 70)
            Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Current code page: 437
//
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
Module Example
   Public Sub Main()
      ' Create a Char array for the modern Cyrillic alphabet, 
      ' from U+0410 to U+044F.
      Dim nChars As Integer = &h44F - &h0410
      Dim chars(nChars) As Char
      Dim codePoint As UInt16 = &h0410
      For ctr As Integer = 0 To chars.Length - 1
        chars(ctr) = ChrW(codePoint)
        codePoint += CType(1, UShort)
      Next   
         
      Console.WriteLine("Current code page: {0}", 
                        Console.OutputEncoding.CodePage)
      Console.WriteLine()
      ' Display the characters.
      For Each ch In chars
         Console.Write("{0}  ", ch)
         If Console.CursorLeft >= 70 Then Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'       Current code page: 437
'       
'       ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
'       ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
'       ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
open System

// Create a char List for the modern Cyrillic alphabet,
// from U+0410 to U+044F.
let chars =
    [ for codePoint in 0x0410 .. 0x044F do
        Convert.ToChar codePoint ]

printfn "Current code page: %i\n" Console.OutputEncoding.CodePage
// Display the characters.
for ch in chars do
    printf "%c  " ch
    if Console.CursorLeft >= 70 then Console.WriteLine()

// The example displays the following output:
//    Current code page: 437
//
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?
//    ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?  ?

kod sayfalarını desteklemeye Console ek olarak, sınıfı ile UTF-8 kodlamasını UTF8Encoding destekler. sınıf, Console .NET Framework 4.5'den başlayarak sınıfı ile UTF-16 kodlamasını UnicodeEncoding da destekler. Unicode karakterlerini konsolda görüntülemek için. özelliğini veya UnicodeEncodingolarak UTF8Encoding ayarlarsınızOutputEncoding.

Unicode karakterleri için destek, kodlayıcının belirli bir Unicode karakterini tanımasını ve ayrıca bu karakteri işlemek için gereken glifleri içeren bir yazı tipi gerektirir. Konsolunda Unicode karakterlerin başarıyla görüntülenmesi için konsol yazı tipinin Consolas veya Lucida Console gibi raster veya TrueType olmayan bir yazı tipine ayarlanması gerekir. Aşağıdaki örnekte, bir raster yazı tipinden Lucida Console'a program aracılığıyla yazı tipini nasıl değiştirebileceğiniz gösterilmektedir.

using System;
using System.Runtime.InteropServices;

public class Example
{
   [DllImport("kernel32.dll", SetLastError = true)]
   static extern IntPtr GetStdHandle(int nStdHandle);

   [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
   static extern bool GetCurrentConsoleFontEx(
          IntPtr consoleOutput,
          bool maximumWindow,
          ref CONSOLE_FONT_INFO_EX lpConsoleCurrentFontEx);

   [DllImport("kernel32.dll", SetLastError = true)]
   static extern bool SetCurrentConsoleFontEx(
          IntPtr consoleOutput,
          bool maximumWindow,
          CONSOLE_FONT_INFO_EX consoleCurrentFontEx);

   private const int STD_OUTPUT_HANDLE = -11;
   private const int TMPF_TRUETYPE = 4;
   private const int LF_FACESIZE = 32;
   private static IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);

   public static unsafe void Main()
   {
      string fontName = "Lucida Console";
      IntPtr hnd = GetStdHandle(STD_OUTPUT_HANDLE);
      if (hnd != INVALID_HANDLE_VALUE) {
         CONSOLE_FONT_INFO_EX info = new CONSOLE_FONT_INFO_EX();
         info.cbSize = (uint) Marshal.SizeOf(info);
         bool tt = false;
         // First determine whether there's already a TrueType font.
         if (GetCurrentConsoleFontEx(hnd, false, ref info)) {
            tt = (info.FontFamily & TMPF_TRUETYPE) == TMPF_TRUETYPE;
            if (tt) {
               Console.WriteLine("The console already is using a TrueType font.");
               return;
            }
            // Set console font to Lucida Console.
            CONSOLE_FONT_INFO_EX newInfo = new CONSOLE_FONT_INFO_EX();
            newInfo.cbSize = (uint) Marshal.SizeOf(newInfo);
            newInfo.FontFamily = TMPF_TRUETYPE;
            IntPtr ptr = new IntPtr(newInfo.FaceName);
            Marshal.Copy(fontName.ToCharArray(), 0, ptr, fontName.Length);
            // Get some settings from current font.
            newInfo.dwFontSize = new COORD(info.dwFontSize.X, info.dwFontSize.Y);
            newInfo.FontWeight = info.FontWeight;
            SetCurrentConsoleFontEx(hnd, false, newInfo);
         }
      }
    }

   [StructLayout(LayoutKind.Sequential)]
   internal struct COORD
   {
      internal short X;
      internal short Y;

      internal COORD(short x, short y)
      {
         X = x;
         Y = y;
      }
   }

   [StructLayout(LayoutKind.Sequential)]
   internal unsafe struct CONSOLE_FONT_INFO_EX
   {
      internal uint cbSize;
      internal uint nFont;
      internal COORD dwFontSize;
      internal int FontFamily;
      internal int FontWeight;
      internal fixed char FaceName[LF_FACESIZE];
   }
}
Imports System.Runtime.InteropServices

Public Module Example
   ' <DllImport("kernel32.dll", SetLastError = true)>
   Private Declare Function GetStdHandle Lib "Kernel32" (
                   nStdHandle As Integer) As IntPtr

   ' [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
   Private Declare Function GetCurrentConsoleFontEx Lib "Kernel32" ( 
                   consoleOutput As IntPtr, 
                   maximumWindow As Boolean,
                   ByRef lpConsoleCurrentFontEx As CONSOLE_FONT_INFO_EX) As Boolean
          
   ' [DllImport("kernel32.dll", SetLastError = true)]
   Private Declare Function SetCurrentConsoleFontEx Lib "Kernel32"(
                   consoleOutput As IntPtr, 
                   maximumWindow As Boolean,
                   consoleCurrentFontEx As CONSOLE_FONT_INFO_EX) As Boolean
   
   Private Const STD_OUTPUT_HANDLE As Integer = -11
   Private Const TMPF_TRUETYPE As Integer = 4
   Private Const LF_FACESIZE As Integer= 32
   Private INVALID_HANDLE_VALUE As IntPtr = New IntPtr(-1)
   
   Public Sub Main()
      Dim fontName As String = "Lucida Console"
      Dim hnd As IntPtr = GetStdHandle(STD_OUTPUT_HANDLE)
      If hnd <> INVALID_HANDLE_VALUE Then
         Dim info AS CONSOLE_FONT_INFO_EX = New CONSOLE_FONT_INFO_EX()
         info.cbSize = CUInt(Marshal.SizeOf(info))
         Dim tt As Boolean = False
         ' First determine whether there's already a TrueType font.
         If GetCurrentConsoleFontEx(hnd, False, info) Then
            tt = (info.FontFamily And TMPF_TRUETYPE) = TMPF_TRUETYPE
            If tt Then
               Console.WriteLine("The console already is using a TrueType font.")
               Return
            End If
            ' Set console font to Lucida Console.
            Dim newInfo As CONSOLE_FONT_INFO_EX = New CONSOLE_FONT_INFO_EX()
            newInfo.cbSize = CUInt(Marshal.SizeOf(newInfo))          
            newInfo.FontFamily = TMPF_TRUETYPE
            newInfo.FaceName = fontName
            ' Get some settings from current font.
            newInfo.dwFontSize = New COORD(info.dwFontSize.X, info.dwFontSize.Y)
            newInfo.FontWeight = info.FontWeight
            SetCurrentConsoleFontEx(hnd, False, newInfo)
         End If
      End If    
   End Sub
 
   <StructLayout(LayoutKind.Sequential)> Friend Structure COORD
      Friend X As Short
      Friend Y As Short
      
      Friend Sub New(x As Short, y As Short)
         Me.X = x
         Me.Y = y
      End Sub
   End Structure
 
   <StructLayout(LayoutKind.Sequential, CharSet := CharSet.Unicode)> Friend Structure CONSOLE_FONT_INFO_EX 
      Friend cbSize As UInteger
      Friend nFont As UInteger
      Friend dwFontSize As COORD
      Friend FontFamily As Integer
      Friend FontWeight As Integer
      <MarshalAs(UnmanagedType.ByValTStr, SizeConst := 32)> Friend FaceName As String
   End Structure 
End Module
module Example

open System
open System.Runtime.InteropServices

[<Literal>]
let STD_OUTPUT_HANDLE = -11

[<Literal>]
let TMPF_TRUETYPE = 4

[<Literal>]
let LF_FACESIZE = 32

let INVALID_HANDLE_VALUE = IntPtr(-1)


[<Struct>]
[<StructLayout(LayoutKind.Sequential)>]
type COORD =
    val mutable X: int16
    val mutable Y: int16

    internal new(x: int16, y: int16) =
        { X = x
          Y = y }

[<Struct>]
[<StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)>]
type CONSOLE_FONT_INFO_EX =
    val mutable cbSize: uint32
    val mutable nFont: uint32
    val mutable dwFontSize: COORD
    val mutable FontFamily: int
    val mutable FontWeight: int
    [<MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)>]
    val mutable FaceName: string

[<DllImport("kernel32.dll", SetLastError = true)>]
extern IntPtr GetStdHandle(int nStdHandle)

[<DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)>]
extern bool GetCurrentConsoleFontEx(IntPtr consoleOutput, bool maximumWindow, CONSOLE_FONT_INFO_EX lpConsoleCurrentFontEx)

[<DllImport("kernel32.dll", SetLastError = true)>]
extern bool SetCurrentConsoleFontEx(IntPtr consoleOutput, bool maximumWindow, CONSOLE_FONT_INFO_EX consoleCurrentFontEx)

[<EntryPoint>]
let main argv =
    let fontName = "Lucida Console"
    let hnd = GetStdHandle(STD_OUTPUT_HANDLE)
    if hnd <> INVALID_HANDLE_VALUE then
        let mutable info = CONSOLE_FONT_INFO_EX()
        info.cbSize <- uint32 (Marshal.SizeOf(info))
        // First determine whether there's already a TrueType font.
        if (GetCurrentConsoleFontEx(hnd, false, info)) then
            if (((info.FontFamily) &&& TMPF_TRUETYPE) = TMPF_TRUETYPE) then
                Console.WriteLine("The console already is using a TrueType font.")
            else
                // Set console font to Lucida Console.
                let mutable newInfo = CONSOLE_FONT_INFO_EX()
                newInfo.cbSize <- uint32 (Marshal.SizeOf(newInfo))
                newInfo.FontFamily <- TMPF_TRUETYPE
                newInfo.FaceName <- fontName
                // Get some settings from current font.
                newInfo.dwFontSize <- COORD(info.dwFontSize.X, info.dwFontSize.Y)
                newInfo.FontWeight <- info.FontWeight
                SetCurrentConsoleFontEx(hnd, false, newInfo) |> ignore
                Console.WriteLine("The console is now using a TrueType font.")

    // Return zero for success
    0

Ancak, TrueType yazı tipleri yalnızca bir glif alt kümesi görüntüleyebilir. Örneğin, Lucida Konsolu yazı tipi, U+0021 ile U+FB02 arasındaki yaklaşık 64.000 kullanılabilir karakterin yalnızca 643'lerini görüntüler. Belirli bir yazı tipinin hangi karakterleri desteklediğini görmek için, Denetim Masası Yazı Tipleri uygulamasını açın, Karakter bul seçeneğini belirleyin ve Karakter Eşlemesi penceresinin Yazı Tipi listesinde karakter kümesini incelemek istediğiniz yazı tipini seçin.

Windows, belirli bir yazı tipinde bulunmayan glifleri görüntülemek için yazı tipi bağlamayı kullanır. Ek karakter kümelerini görüntülemek için yazı tipi bağlama hakkında bilgi için bkz. Genelleştirme Adım Adım: Yazı Tipleri. Bağlantılı yazı tipleri, kayıt defterinin HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink alt anahtarında tanımlanır. Bu alt anahtarla ilişkilendirilmiş her giriş bir temel yazı tipinin adına karşılık gelir ve değeri, yazı tipi dosyalarını ve temel yazı tipine bağlı yazı tiplerini tanımlayan bir dize dizisidir. Dizinin her üyesi bağlantılı bir yazı tipini tanımlar ve font-file-name,font-name biçimini alır. Aşağıdaki örnekte, Basitleştirilmiş Han karakterleri görüntüleyen simsun.ttc adlı yazı tipi dosyasında bulunan SimSun adlı bağlantılı yazı tipini program aracılığıyla nasıl tanımlayabileceğiniz gösterilmektedir.

using Microsoft.Win32;
using System;

public class Example
{
   public static void Main()
   {
      string valueName = "Lucida Console";
      string newFont = "simsun.ttc,SimSun";
      string[] fonts = null;
      RegistryValueKind kind = 0;
      bool toAdd;

      RegistryKey key = Registry.LocalMachine.OpenSubKey(
                 @"Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink",
                 true);
      if (key == null) {
         Console.WriteLine("Font linking is not enabled.");
      }
      else {
         // Determine if the font is a base font.
         string[] names = key.GetValueNames();
         if (Array.Exists(names, s => s.Equals(valueName,
                                      StringComparison.OrdinalIgnoreCase))) {
            // Get the value's type.
            kind = key.GetValueKind(valueName);

            // Type should be RegistryValueKind.MultiString, but we can't be sure.
            switch (kind) {
               case RegistryValueKind.String:
                  fonts = new string[] { (string) key.GetValue(valueName) };
                  break;
               case RegistryValueKind.MultiString:
                  fonts = (string[]) key.GetValue(valueName);
                  break;
               case RegistryValueKind.None:
                  // Do nothing.
                  fonts = new string[] { };
                  break;
            }
            // Determine whether SimSun is a linked font.
            if (Array.FindIndex(fonts, s =>s.IndexOf("SimSun",
                                       StringComparison.OrdinalIgnoreCase) >=0) >= 0) {
               Console.WriteLine("Font is already linked.");
               toAdd = false;
            }
            else {
               // Font is not a linked font.
               toAdd = true;
            }
         }
         else {
            // Font is not a base font.
            toAdd = true;
            fonts = new string[] { };
         }

         if (toAdd) {
            Array.Resize(ref fonts, fonts.Length + 1);
            fonts[fonts.GetUpperBound(0)] = newFont;
            // Change REG_SZ to REG_MULTI_SZ.
            if (kind == RegistryValueKind.String)
               key.DeleteValue(valueName, false);

            key.SetValue(valueName, fonts, RegistryValueKind.MultiString);
            Console.WriteLine("SimSun added to the list of linked fonts.");
         }
      }

      if (key != null) key.Close();
   }
}
Imports Microsoft.Win32

Module Example
   Public Sub Main()
      Dim valueName As String = "Lucida Console"
      Dim newFont As String = "simsun.ttc,SimSun"
      Dim fonts() As String = Nothing
      Dim kind As RegistryValueKind 
      Dim toAdd As Boolean
      
      Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey( 
                 "Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink", 
                 True)
      If key Is Nothing Then
         Console.WriteLine("Font linking is not enabled.")
      Else
         ' Determine if the font is a base font.
         Dim names() As String = key.GetValueNames()
         If Array.Exists(names, Function(s) s.Equals(valueName, 
                                                     StringComparison.OrdinalIgnoreCase))
            ' Get the value's type.
            kind = key.GetValueKind(valueName)

            ' Type should be RegistryValueKind.MultiString, but we can't be sure.
            Select Case kind
               Case RegistryValueKind.String
                  fonts = { CStr(key.GetValue(valueName)) }   
               Case RegistryValueKind.MultiString
                  fonts = CType(key.GetValue(valueName), String())
               Case RegistryValueKind.None
                  ' Do nothing.
                  fonts = { }
            End Select 
            ' Determine whether SimSun is a linked font.
            If Array.FindIndex(fonts, Function(s) s.IndexOf("SimSun", 
                                      StringComparison.OrdinalIgnoreCase) >=0) >= 0 Then
               Console.WriteLine("Font is already linked.")
               toAdd = False
            Else
               ' Font is not a linked font.
               toAdd = True
            End If
         Else
            ' Font is not a base font.
            toAdd = True
            fonts = { }
         End If

         If toAdd Then  
            Array.Resize(fonts, fonts.Length + 1)
            fonts(fonts.GetUpperBound(0)) = newFont
            ' Change REG_SZ to REG_MULTI_SZ.
            If kind = RegistryValueKind.String Then
               key.DeleteValue(valueName, False)
            End If
            key.SetValue(valueName, fonts, RegistryValueKind.MultiString)
            Console.WriteLine("SimSun added to the list of linked fonts.")
         End If                     
      End If
      
      If key IsNot Nothing Then key.Close()
   End Sub
End Module
open System
open Microsoft.Win32

let valueName = "Lucida Console"
let newFont = "simsun.ttc,SimSun"

let key =
    Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink", true)
if isNull key then
    printfn "Font linking is not enabled."
else
    // Determine if the font is a base font.
    let names = key.GetValueNames()

    let (fonts, kind, toAdd) =
        if names |> Array.exists (fun s -> s.Equals(valueName, StringComparison.OrdinalIgnoreCase)) then
            // Get the value's type.
            let kind = key.GetValueKind(valueName)

            // Type should be RegistryValueKind.MultiString, but we can't be sure.
            let fonts =
                match kind with
                | RegistryValueKind.String -> [| key.GetValue(valueName) :?> string |]
                | RegistryValueKind.MultiString -> (key.GetValue(valueName) :?> string array)
                | _ -> [||]

            // Determine whether SimSun is a linked font.
            let toAdd =
                not (fonts |> Array.exists (fun s -> s.IndexOf("SimSun", StringComparison.OrdinalIgnoreCase) >= 0))

            (fonts, kind, toAdd)
        else
            // Font is not a base font.
            ([||], RegistryValueKind.Unknown, true)

    if toAdd then
        // Font is not a linked font.
        let newFonts = Array.append fonts [| newFont |]

        // Change REG_SZ to REG_MULTI_SZ.
        if kind = RegistryValueKind.String then key.DeleteValue(valueName, false)

        key.SetValue(valueName, newFonts, RegistryValueKind.MultiString)
        printfn "SimSun added to the list of linked fonts."
    else
        printfn "Font is already linked."


if not (isNull key) then key.Close()

Konsol için Unicode desteğinin aşağıdaki sınırlamaları vardır:

  • UTF-32 kodlaması desteklenmez. Desteklenen tek Unicode kodlamaları sırasıyla ve sınıfları tarafından UTF8Encoding temsil edilen UTF-8 ve UnicodeEncoding UTF-16'dır.

  • Çift yönlü çıkış desteklenmez.

  • Bağlantılı yazı tipi dosyasında tanımlansalar bile Temel Çok Dilli Düzlem (vekil çiftlerin) dışındaki karakterlerin görüntülenmesi desteklenmez.

  • Karmaşık betiklerdeki karakterlerin görüntülenmesi desteklenmez.

  • Karakter dizilerinin birleştirilmesi (yani, bir temel karakterden ve bir veya daha fazla birleştirme karakterinden oluşan karakterler) ayrı karakterler olarak görüntülenir. Bu sınırlamayı geçici olarak çözmek için, konsola çıkış göndermeden önce yöntemini çağırarak String.Normalize görüntülenecek dizeyi normalleştirebilirsiniz. Aşağıdaki örnekte, U+0061 U+0308 karakter dizisini birleştiren bir dize, çıkış dizesi normalleştirilmeden önce iki karakter olarak ve yöntem çağrıldıktan sonra tek bir karakter olarak konsolda String.Normalize görüntülenir.

    using System;
    using System.IO;
    
    public class Example
    {
       public static void Main()
       {
          char[] chars = { '\u0061', '\u0308' };
    
          string combining = new String(chars);
          Console.WriteLine(combining);
    
          combining = combining.Normalize();
          Console.WriteLine(combining);
       }
    }
    // The example displays the following output:
    //       a"
    //       ä
    
    Module Example
       Public Sub Main()
          Dim chars() As Char = { ChrW(&h0061), ChrW(&h0308) }
       
          Dim combining As String = New String(chars)
          Console.WriteLine(combining)
          
          combining = combining.Normalize()
          Console.WriteLine(combining)
       End Sub
    End Module
    ' The example displays the following output:
    '       a"
    '       ä
    
    open System
    
    let chars = [| '\u0061'; '\u0308' |]
    
    let combining = String chars
    Console.WriteLine combining
    
    let combining2 = combining.Normalize()
    Console.WriteLine combining2
    
    
    // The example displays the following output:
    //       a"
    //       ä
    

    Normalleştirmenin yalnızca karakter için Unicode standardı belirli bir birleştirme karakter dizisine karşılık gelen önceden oluşturulmuş bir form içeriyorsa uygulanabilir bir çözüm olduğunu unutmayın.

  • Yazı tipi özel kullanım alanındaki bir kod noktası için bir glif sağlıyorsa, bu karakter görüntülenir. Ancak, özel kullanım alanındaki karakterler uygulamaya özgü olduğundan bu beklenen karakter olmayabilir.

Aşağıdaki örnekte konsolda unicode karakter aralığı görüntülenir. Örnek üç komut satırı parametresi kabul eder: görüntülenecek aralığın başlangıcı, görüntülenecek aralığın sonu ve geçerli konsol kodlamasının () veya UTF-16 kodlamasının (false``true) kullanılıp kullanılmayacağını belirtir. Konsolun bir TrueType yazı tipi kullandığını varsayar.

using System;
using System.IO;
using System.Globalization;
using System.Text;

public static class DisplayChars
{
   private static void Main(string[] args)
   {
      uint rangeStart = 0;
      uint rangeEnd = 0;
      bool setOutputEncodingToUnicode = true;
      // Get the current encoding so we can restore it.
      Encoding originalOutputEncoding = Console.OutputEncoding;

    try
    {
         switch(args.Length)
         {
            case 2:
               rangeStart = uint.Parse(args[0], NumberStyles.HexNumber);
               rangeEnd = uint.Parse(args[1], NumberStyles.HexNumber);
               setOutputEncodingToUnicode = true;
               break;
            case 3:
               if (! uint.TryParse(args[0], NumberStyles.HexNumber, null, out rangeStart))
                  throw new ArgumentException(String.Format("{0} is not a valid hexadecimal number.", args[0]));

               if (!uint.TryParse(args[1], NumberStyles.HexNumber, null, out rangeEnd))
                  throw new ArgumentException(String.Format("{0} is not a valid hexadecimal number.", args[1]));

               bool.TryParse(args[2], out setOutputEncodingToUnicode);
               break;
            default:
               Console.WriteLine("Usage: {0} <{1}> <{2}> [{3}]",
                                 Environment.GetCommandLineArgs()[0],
                                 "startingCodePointInHex",
                                 "endingCodePointInHex",
                                 "<setOutputEncodingToUnicode?{true|false, default:false}>");
               return;
         }

         if (setOutputEncodingToUnicode) {
            // This won't work before .NET Framework 4.5.
            try {
               // Set encoding using endianness of this system.
               // We're interested in displaying individual Char objects, so
               // we don't want a Unicode BOM or exceptions to be thrown on
               // invalid Char values.
               Console.OutputEncoding = new UnicodeEncoding(! BitConverter.IsLittleEndian, false);
               Console.WriteLine("\nOutput encoding set to UTF-16");
            }
            catch (IOException) {
               Console.OutputEncoding = new UTF8Encoding();
               Console.WriteLine("Output encoding set to UTF-8");
            }
         }
         else {
            Console.WriteLine("The console encoding is {0} (code page {1})",
                              Console.OutputEncoding.EncodingName,
                              Console.OutputEncoding.CodePage);
         }
         DisplayRange(rangeStart, rangeEnd);
      }
      catch (ArgumentException ex) {
         Console.WriteLine(ex.Message);
      }
      finally {
         // Restore console environment.
         Console.OutputEncoding = originalOutputEncoding;
      }
   }

   public static void DisplayRange(uint start, uint end)
   {
      const uint upperRange = 0x10FFFF;
      const uint surrogateStart = 0xD800;
      const uint surrogateEnd = 0xDFFF;

      if (end <= start) {
         uint t = start;
         start = end;
         end = t;
      }

      // Check whether the start or end range is outside of last plane.
      if (start > upperRange)
         throw new ArgumentException(String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{1:X5})",
                                                   start, upperRange));
      if (end > upperRange)
         throw new ArgumentException(String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{0:X5})",
                                                   end, upperRange));

      // Since we're using 21-bit code points, we can't use U+D800 to U+DFFF.
      if ((start < surrogateStart & end > surrogateStart) || (start >= surrogateStart & start <= surrogateEnd ))
         throw new ArgumentException(String.Format("0x{0:X5}-0x{1:X5} includes the surrogate pair range 0x{2:X5}-0x{3:X5}",
                                                   start, end, surrogateStart, surrogateEnd));
      uint last = RoundUpToMultipleOf(0x10, end);
      uint first = RoundDownToMultipleOf(0x10, start);

      uint rows = (last - first) / 0x10;

      for (uint r = 0; r < rows; ++r) {
         // Display the row header.
         Console.Write("{0:x5} ", first + 0x10 * r);

         for (uint c = 0; c < 0x10; ++c) {
            uint cur = (first + 0x10 * r + c);
            if (cur  < start) {
               Console.Write($" {(char)(0x20)} ");
            }
            else if (end < cur) {
               Console.Write($" {(char)(0x20)} ");
            }
            else {
               // the cast to int is safe, since we know that val <= upperRange.
               String chars = Char.ConvertFromUtf32( (int) cur);
               // Display a space for code points that are not valid characters.
               if (CharUnicodeInfo.GetUnicodeCategory(chars[0]) ==
                                               UnicodeCategory.OtherNotAssigned)
                  Console.Write($" {(char)(0x20)} ");
               // Display a space for code points in the private use area.
               else if (CharUnicodeInfo.GetUnicodeCategory(chars[0]) ==
                                              UnicodeCategory.PrivateUse)
                 Console.Write($" {(char)(0x20)} ");
               // Is surrogate pair a valid character?
               // Note that the console will interpret the high and low surrogate
               // as separate (and unrecognizable) characters.
               else if (chars.Length > 1 && CharUnicodeInfo.GetUnicodeCategory(chars, 0) ==
                                            UnicodeCategory.OtherNotAssigned)
                  Console.Write($" {(char)(0x20)} ");
               else
                  Console.Write($" {chars} ");
            }

            switch (c) {
               case 3: case 11:
                  Console.Write("-");
                  break;
               case 7:
                  Console.Write("--");
                  break;
            }
         }

         Console.WriteLine();
         if (0 < r && r % 0x10 == 0)
            Console.WriteLine();
      }
   }

   private static uint RoundUpToMultipleOf(uint b, uint u)
   {
      return RoundDownToMultipleOf(b, u) + b;
   }

   private static uint RoundDownToMultipleOf(uint b, uint u)
   {
      return u - (u % b);
   }
}
// If the example is run with the command line
//       DisplayChars 0400 04FF true
// the example displays the Cyrillic character set as follows:
//       Output encoding set to UTF-16
//       00400  Ѐ  Ё  Ђ  Ѓ - Є  Ѕ  І  Ї -- Ј  Љ  Њ  Ћ - Ќ  Ѝ  Ў  Џ
//       00410  А  Б  В  Г - Д  Е  Ж  З -- И  Й  К  Л - М  Н  О  П
//       00420  Р  С  Т  У - Ф  Х  Ц  Ч -- Ш  Щ  Ъ  Ы - Ь  Э  Ю  Я
//       00430  а  б  в  г - д  е  ж  з -- и  й  к  л - м  н  о  п
//       00440  р  с  т  у - ф  х  ц  ч -- ш  щ  ъ  ы - ь  э  ю  я
//       00450  ѐ  ё  ђ  ѓ - є  ѕ  і  ї -- ј  љ  њ  ћ - ќ  ѝ  ў  џ
//       00460  Ѡ  ѡ  Ѣ  ѣ - Ѥ  ѥ  Ѧ  ѧ -- Ѩ  ѩ  Ѫ  ѫ - Ѭ  ѭ  Ѯ  ѯ
//       00470  Ѱ  ѱ  Ѳ  ѳ - Ѵ  ѵ  Ѷ  ѷ -- Ѹ  ѹ  Ѻ  ѻ - Ѽ  ѽ  Ѿ  ѿ
//       00480  Ҁ  ҁ  ҂  ҃ - ҄  ҅  ҆  ҇ -- ҈  ҉  Ҋ  ҋ - Ҍ  ҍ  Ҏ  ҏ
//       00490  Ґ  ґ  Ғ  ғ - Ҕ  ҕ  Җ  җ -- Ҙ  ҙ  Қ  қ - Ҝ  ҝ  Ҟ  ҟ
//       004a0  Ҡ  ҡ  Ң  ң - Ҥ  ҥ  Ҧ  ҧ -- Ҩ  ҩ  Ҫ  ҫ - Ҭ  ҭ  Ү  ү
//       004b0  Ұ  ұ  Ҳ  ҳ - Ҵ  ҵ  Ҷ  ҷ -- Ҹ  ҹ  Һ  һ - Ҽ  ҽ  Ҿ  ҿ
//       004c0  Ӏ  Ӂ  ӂ  Ӄ - ӄ  Ӆ  ӆ  Ӈ -- ӈ  Ӊ  ӊ  Ӌ - ӌ  Ӎ  ӎ  ӏ
//       004d0  Ӑ  ӑ  Ӓ  ӓ - Ӕ  ӕ  Ӗ  ӗ -- Ә  ә  Ӛ  ӛ - Ӝ  ӝ  Ӟ  ӟ
//       004e0  Ӡ  ӡ  Ӣ  ӣ - Ӥ  ӥ  Ӧ  ӧ -- Ө  ө  Ӫ  ӫ - Ӭ  ӭ  Ӯ  ӯ
//       004f0  Ӱ  ӱ  Ӳ  ӳ - Ӵ  ӵ  Ӷ  ӷ -- Ӹ  ӹ  Ӻ  ӻ - Ӽ  ӽ  Ӿ  ӿ
Imports System.IO
Imports System.Globalization
Imports System.Text

Public Module DisplayChars
   Public Sub Main(args() As String)
      Dim rangeStart As UInteger = 0
      Dim rangeEnd As UInteger = 0
      Dim setOutputEncodingToUnicode As Boolean = True
      ' Get the current encoding so we can restore it.
      Dim originalOutputEncoding As Encoding = Console.OutputEncoding

    Try
         Select Case args.Length
            Case 2
               rangeStart = UInt32.Parse(args(0), NumberStyles.HexNumber)
               rangeEnd = UInt32.Parse(args(1), NumberStyles.HexNumber)
               setOutputEncodingToUnicode = True
            Case 3
               If Not UInt32.TryParse(args(0), NumberStyles.HexNumber, Nothing, rangeStart) Then
                  Throw New ArgumentException(String.Format("{0} is not a valid hexadecimal number.", args(0)))
               End If
               
               If Not UInt32.TryParse(args(1), NumberStyles.HexNumber, Nothing, rangeEnd) Then
                  Throw New ArgumentException(String.Format("{0} is not a valid hexadecimal number.", args(1)))
               End If
               
               Boolean.TryParse(args(2), setOutputEncodingToUnicode)
            Case Else
               Console.WriteLine("Usage: {0} <{1}> <{2}> [{3}]", 
                                 Environment.GetCommandLineArgs()(0), 
                                 "startingCodePointInHex", 
                                 "endingCodePointInHex", 
                                 "<setOutputEncodingToUnicode?{true|false, default:false}>")
               Exit Sub
         End Select
   
         If setOutputEncodingToUnicode Then
            ' This won't work before .NET Framework 4.5.
            Try 
               ' Set encoding Imports endianness of this system.
               ' We're interested in displaying individual Char objects, so 
               ' we don't want a Unicode BOM or exceptions to be thrown on
               ' invalid Char values.
               Console.OutputEncoding = New UnicodeEncoding(Not BitConverter.IsLittleEndian, False) 
               Console.WriteLine("{0}Output encoding set to UTF-16", vbCrLf)
            Catch e As IOException
               Console.OutputEncoding = New UTF8Encoding()
               Console.WriteLine("Output encoding set to UTF-8")
            End Try
         Else
            Console.WriteLine("The console encoding is {0} (code page {1})", 
                              Console.OutputEncoding.EncodingName,
                              Console.OutputEncoding.CodePage)
         End If
         DisplayRange(rangeStart, rangeEnd)
      Catch ex As ArgumentException
         Console.WriteLine(ex.Message)
      Finally
         ' Restore console environment.
         Console.OutputEncoding = originalOutputEncoding
      End Try
   End Sub

   Public Sub DisplayRange(rangeStart As UInteger, rangeEnd As UInteger)
      Const upperRange As UInteger = &h10FFFF
      Const surrogateStart As UInteger = &hD800
      Const surrogateEnd As UInteger = &hDFFF
       
      If rangeEnd <= rangeStart Then
         Dim t As UInteger = rangeStart
         rangeStart = rangeEnd
         rangeEnd = t
      End If

      ' Check whether the start or end range is outside of last plane.
      If rangeStart > upperRange Then
         Throw New ArgumentException(String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{1:X5})",
                                                   rangeStart, upperRange))                                   
      End If
      If rangeEnd > upperRange Then
         Throw New ArgumentException(String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{0:X5})",
                                                   rangeEnd, upperRange))
      End If
      ' Since we're using 21-bit code points, we can't use U+D800 to U+DFFF.
      If (rangeStart < surrogateStart And rangeEnd > surrogateStart) OrElse (rangeStart >= surrogateStart And rangeStart <= surrogateEnd )
         Throw New ArgumentException(String.Format("0x{0:X5}-0x{1:X5} includes the surrogate pair range 0x{2:X5}-0x{3:X5}", 
                                                   rangeStart, rangeEnd, surrogateStart, surrogateEnd))         
      End If
      
      Dim last As UInteger = RoundUpToMultipleOf(&h10, rangeEnd)
      Dim first As UInteger = RoundDownToMultipleOf(&h10, rangeStart)

      Dim rows As UInteger = (last - first) \ &h10

      For r As UInteger = 0 To rows - 1
         ' Display the row header.
         Console.Write("{0:x5} ", first + &h10 * r)

         For c As UInteger = 1 To &h10
            Dim cur As UInteger = first + &h10 * r + c
            If cur  < rangeStart Then
               Console.Write(" {0} ", Convert.ToChar(&h20))
            Else If rangeEnd < cur Then
               Console.Write(" {0} ", Convert.ToChar(&h20))
            Else 
               ' the cast to int is safe, since we know that val <= upperRange.
               Dim chars As String = Char.ConvertFromUtf32(CInt(cur))
               ' Display a space for code points that are not valid characters.
               If CharUnicodeInfo.GetUnicodeCategory(chars(0)) = 
                                   UnicodeCategory.OtherNotAssigned Then
                  Console.Write(" {0} ", Convert.ToChar(&h20))
               ' Display a space for code points in the private use area.
               Else If CharUnicodeInfo.GetUnicodeCategory(chars(0)) =
                                        UnicodeCategory.PrivateUse Then
                 Console.Write(" {0} ", Convert.ToChar(&h20))
               ' Is surrogate pair a valid character?
               ' Note that the console will interpret the high and low surrogate
               ' as separate (and unrecognizable) characters.
               Else If chars.Length > 1 AndAlso CharUnicodeInfo.GetUnicodeCategory(chars, 0) = 
                                            UnicodeCategory.OtherNotAssigned Then
                  Console.Write(" {0} ", Convert.ToChar(&h20))
               Else
                  Console.Write(" {0} ", chars) 
               End If   
            End If
            
            Select Case c
               Case 3, 11
                  Console.Write("-")
               Case 7
                  Console.Write("--")
            End Select
         Next

         Console.WriteLine()
         If 0 < r AndAlso r Mod &h10 = 0
            Console.WriteLine()
         End If
      Next
   End Sub

   Private Function RoundUpToMultipleOf(b As UInteger, u As UInteger) As UInteger
      Return RoundDownToMultipleOf(b, u) + b
   End Function

   Private Function RoundDownToMultipleOf(b As UInteger, u As UInteger) As UInteger
      Return u - (u Mod b)
   End Function
End Module
' If the example is run with the command line
'       DisplayChars 0400 04FF true
' the example displays the Cyrillic character set as follows:
'       Output encoding set to UTF-16
'       00400  Ѐ  Ё  Ђ  Ѓ - Є  Ѕ  І  Ї -- Ј  Љ  Њ  Ћ - Ќ  Ѝ  Ў  Џ
'       00410  А  Б  В  Г - Д  Е  Ж  З -- И  Й  К  Л - М  Н  О  П
'       00420  Р  С  Т  У - Ф  Х  Ц  Ч -- Ш  Щ  Ъ  Ы - Ь  Э  Ю  Я
'       00430  а  б  в  г - д  е  ж  з -- и  й  к  л - м  н  о  п
'       00440  р  с  т  у - ф  х  ц  ч -- ш  щ  ъ  ы - ь  э  ю  я
'       00450  ѐ  ё  ђ  ѓ - є  ѕ  і  ї -- ј  љ  њ  ћ - ќ  ѝ  ў  џ
'       00460  Ѡ  ѡ  Ѣ  ѣ - Ѥ  ѥ  Ѧ  ѧ -- Ѩ  ѩ  Ѫ  ѫ - Ѭ  ѭ  Ѯ  ѯ
'       00470  Ѱ  ѱ  Ѳ  ѳ - Ѵ  ѵ  Ѷ  ѷ -- Ѹ  ѹ  Ѻ  ѻ - Ѽ  ѽ  Ѿ  ѿ
'       00480  Ҁ  ҁ  ҂  ҃ - ҄  ҅  ҆  ҇ -- ҈  ҉  Ҋ  ҋ - Ҍ  ҍ  Ҏ  ҏ
'       00490  Ґ  ґ  Ғ  ғ - Ҕ  ҕ  Җ  җ -- Ҙ  ҙ  Қ  қ - Ҝ  ҝ  Ҟ  ҟ
'       004a0  Ҡ  ҡ  Ң  ң - Ҥ  ҥ  Ҧ  ҧ -- Ҩ  ҩ  Ҫ  ҫ - Ҭ  ҭ  Ү  ү
'       004b0  Ұ  ұ  Ҳ  ҳ - Ҵ  ҵ  Ҷ  ҷ -- Ҹ  ҹ  Һ  һ - Ҽ  ҽ  Ҿ  ҿ
'       004c0  Ӏ  Ӂ  ӂ  Ӄ - ӄ  Ӆ  ӆ  Ӈ -- ӈ  Ӊ  ӊ  Ӌ - ӌ  Ӎ  ӎ  ӏ
'       004d0  Ӑ  ӑ  Ӓ  ӓ - Ӕ  ӕ  Ӗ  ӗ -- Ә  ә  Ӛ  ӛ - Ӝ  ӝ  Ӟ  ӟ
'       004e0  Ӡ  ӡ  Ӣ  ӣ - Ӥ  ӥ  Ӧ  ӧ -- Ө  ө  Ӫ  ӫ - Ӭ  ӭ  Ӯ  ӯ
'       004f0  Ӱ  ӱ  Ӳ  ӳ - Ӵ  ӵ  Ӷ  ӷ -- Ӹ  ӹ  Ӻ  ӻ - Ӽ  ӽ  Ӿ  ӿ
module DisplayChars

open System
open System.IO
open System.Globalization
open System.Text

type uint = uint32

let inline roundDownToMultipleOf b u = u - (u % b)

let inline roundUpToMultipleOf b u = roundDownToMultipleOf b u |> (+) b

let displayRange (start: uint) (``end``: uint) =

    let upperRange = 0x10FFFFu
    let surrogateStart = 0xD800u
    let surrogateEnd = 0xDFFFu

    let start, ``end`` =
        if ``end`` <= start then ``end``, start
        else start, ``end``

    // Check whether the start or end range is outside of last plane.
    if start > upperRange then
        invalidArg "start"
            (String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{1:X5})", start, upperRange))
    if ``end`` > upperRange then
        invalidArg "end"
            (String.Format("0x{0:X5} is outside the upper range of Unicode code points (0x{0:X5})", ``end``, upperRange))

    // Since we're using 21-bit code points, we can't use U+D800 to U+DFFF.
    if (start < surrogateStart && ``end`` > surrogateStart) || (start >= surrogateStart && start <= surrogateEnd) then
        raise
            (ArgumentException
                (String.Format
                    ("0x{0:X5}-0x{1:X5} includes the surrogate pair range 0x{2:X5}-0x{3:X5}", start, ``end``,
                     surrogateStart, surrogateEnd)))
    let last = roundUpToMultipleOf 0x10u ``end``
    let first = roundDownToMultipleOf 0x10u start

    let rows = (last - first) / 0x10u

    for r in 0u .. (rows - 1u) do
        // Display the row header.
        printf "%05x " (first + 0x10u * r)

        for c in 0u .. (0x10u - 1u) do
            let cur = (first + 0x10u * r + c)
            if cur < start || ``end`` < cur then
                printf " %c " (Convert.ToChar 0x20)
            else
                // the cast to int is safe, since we know that val <= upperRange.
                let chars = Char.ConvertFromUtf32(int cur)
                // Display a space for code points that are not valid characters.
                if CharUnicodeInfo.GetUnicodeCategory(chars[0]) = UnicodeCategory.OtherNotAssigned then
                    printf " %c " (Convert.ToChar 0x20)
                else
                    // Display a space for code points in the private use area.
                    if CharUnicodeInfo.GetUnicodeCategory(chars[0]) = UnicodeCategory.PrivateUse then
                        printf " %c " (Convert.ToChar 0x20)
                    else if chars.Length > 1
                            && CharUnicodeInfo.GetUnicodeCategory(chars, 0) = UnicodeCategory.OtherNotAssigned then
                        printf " %c " (Convert.ToChar 0x20)
                    else printf " %s " chars

            match c with
            | 3u
            | 11u -> printf "-"
            | 7u -> printf "--"
            | _ -> ()

        Console.WriteLine()
        if (0u < r && r % 0x10u = 0u) then Console.WriteLine()



[<EntryPoint>]
let main args =
    // Get the current encoding so we can restore it.
    let originalOutputEncoding = Console.OutputEncoding

    try
        try
            let parsedArgs =
                match args.Length with
                | 2 ->
                    Some
                        {| setOutputEncodingToUnicode = true
                           rangeStart = uint.Parse(args[0], NumberStyles.HexNumber)
                           rangeEnd = uint.Parse(args[1], NumberStyles.HexNumber) |}
                | 3 ->
                    let parseHexNumberOrThrow (value: string) parameterName =
                        (uint.TryParse(value, NumberStyles.HexNumber, null))
                        |> function
                        | (false, _) ->
                            invalidArg parameterName (String.Format("{0} is not a valid hexadecimal number.", value))
                        | (true, value) -> value

                    let setOutputEncodingToUnicode =
                        match bool.TryParse args[2] with
                        | true, value -> value
                        | false, _ -> true

                    Some
                        {| setOutputEncodingToUnicode = setOutputEncodingToUnicode
                           rangeStart = parseHexNumberOrThrow args[0] "rangeStart"
                           rangeEnd = parseHexNumberOrThrow args[1] "rangeEnd" |}
                | _ ->
                    printfn "Usage: %s <%s> <%s> [%s]" (Environment.GetCommandLineArgs()[0]) "startingCodePointInHex"
                        "endingCodePointInHex" "<setOutputEncodingToUnicode?{true|false, default:false}>"
                    None

            match parsedArgs with
            | None -> ()
            | Some parsedArgs ->
                if parsedArgs.setOutputEncodingToUnicode then
                    // This won't work before .NET Framework 4.5.
                    try
                        // Set encoding using endianness of this system.
                        // We're interested in displaying individual Char objects, so
                        // we don't want a Unicode BOM or exceptions to be thrown on
                        // invalid Char values.
                        Console.OutputEncoding <- UnicodeEncoding(not BitConverter.IsLittleEndian, false)
                        printfn "\nOutput encoding set to UTF-16"

                    with :? IOException ->
                        printfn "Output encoding set to UTF-8"
                        Console.OutputEncoding <- UTF8Encoding()
                else
                    printfn "The console encoding is %s (code page %i)" (Console.OutputEncoding.EncodingName)
                        (Console.OutputEncoding.CodePage)

                displayRange parsedArgs.rangeStart parsedArgs.rangeEnd
        with :? ArgumentException as ex -> Console.WriteLine(ex.Message)
    finally
        // Restore console environment.
        Console.OutputEncoding <- originalOutputEncoding
    0

// If the example is run with the command line
//       DisplayChars 0400 04FF true
// the example displays the Cyrillic character set as follows:
//       Output encoding set to UTF-16
//       00400  Ѐ  Ё  Ђ  Ѓ - Є  Ѕ  І  Ї -- Ј  Љ  Њ  Ћ - Ќ  Ѝ  Ў  Џ
//       00410  А  Б  В  Г - Д  Е  Ж  З -- И  Й  К  Л - М  Н  О  П
//       00420  Р  С  Т  У - Ф  Х  Ц  Ч -- Ш  Щ  Ъ  Ы - Ь  Э  Ю  Я
//       00430  а  б  в  г - д  е  ж  з -- и  й  к  л - м  н  о  п
//       00440  р  с  т  у - ф  х  ц  ч -- ш  щ  ъ  ы - ь  э  ю  я
//       00450  ѐ  ё  ђ  ѓ - є  ѕ  і  ї -- ј  љ  њ  ћ - ќ  ѝ  ў  џ
//       00460  Ѡ  ѡ  Ѣ  ѣ - Ѥ  ѥ  Ѧ  ѧ -- Ѩ  ѩ  Ѫ  ѫ - Ѭ  ѭ  Ѯ  ѯ
//       00470  Ѱ  ѱ  Ѳ  ѳ - Ѵ  ѵ  Ѷ  ѷ -- Ѹ  ѹ  Ѻ  ѻ - Ѽ  ѽ  Ѿ  ѿ
//       00480  Ҁ  ҁ  ҂  ҃ - ҄  ҅  ҆  ҇ -- ҈  ҉  Ҋ  ҋ - Ҍ  ҍ  Ҏ  ҏ
//       00490  Ґ  ґ  Ғ  ғ - Ҕ  ҕ  Җ  җ -- Ҙ  ҙ  Қ  қ - Ҝ  ҝ  Ҟ  ҟ
//       004a0  Ҡ  ҡ  Ң  ң - Ҥ  ҥ  Ҧ  ҧ -- Ҩ  ҩ  Ҫ  ҫ - Ҭ  ҭ  Ү  ү
//       004b0  Ұ  ұ  Ҳ  ҳ - Ҵ  ҵ  Ҷ  ҷ -- Ҹ  ҹ  Һ  һ - Ҽ  ҽ  Ҿ  ҿ
//       004c0  Ӏ  Ӂ  ӂ  Ӄ - ӄ  Ӆ  ӆ  Ӈ -- ӈ  Ӊ  ӊ  Ӌ - ӌ  Ӎ  ӎ  ӏ
//       004d0  Ӑ  ӑ  Ӓ  ӓ - Ӕ  ӕ  Ӗ  ӗ -- Ә  ә  Ӛ  ӛ - Ӝ  ӝ  Ӟ  ӟ
//       004e0  Ӡ  ӡ  Ӣ  ӣ - Ӥ  ӥ  Ӧ  ӧ -- Ө  ө  Ӫ  ӫ - Ӭ  ӭ  Ӯ  ӯ
//       004f0  Ӱ  ӱ  Ӳ  ӳ - Ӵ  ӵ  Ӷ  ӷ -- Ӹ  ӹ  Ӻ  ӻ - Ӽ  ӽ  Ӿ  ӿ

Sık Gerçekleştirilen İşlemler

sınıfı, Console konsol girişini okumak ve konsol çıktısı yazmak için aşağıdaki yöntemleri içerir:

  • yönteminin ReadKey aşırı yüklemeleri tek bir karakteri okur.

  • yöntemi bir ReadLine giriş satırının tamamını okur.

  • Write yöntemi aşırı yüklemeleri bir değer türünün, karakter dizisinin veya nesne kümesinin bir örneğini biçimlendirilmiş veya biçimlendirilmemiş bir dizeye dönüştürür ve ardından bu dizeyi konsola yazar.

  • Paralel yöntem aşırı yükleme kümesi WriteLine , aşırı yüklemelerle aynı dizeyi Write verir, aynı zamanda bir satır sonlandırma dizesi ekler.

Console sınıfı ayrıca aşağıdaki işlemleri gerçekleştirmek için yöntemler ve özellikler içerir:

  • Ekran arabelleğinin boyutunu alın veya ayarlayın. BufferHeight ve BufferWidth özellikleri, arabellek yüksekliğini ve genişliğini sırasıyla almanıza veya ayarlamanıza ve yöntemi ise SetBufferSize arabellek boyutunu tek bir yöntem çağrısında ayarlamanıza olanak tanır.

  • Konsol penceresinin boyutunu alın veya ayarlayın. WindowHeight ve WindowWidth özellikleri sırasıyla pencere yüksekliğini ve genişliğini almanıza veya ayarlamanıza SetWindowSize ve yöntemi ise pencere boyutunu tek bir yöntem çağrısında ayarlamanıza olanak tanır.

  • İmlecin boyutunu alın veya ayarlayın. özelliği, CursorSize imlecin bir karakter hücresindeki yüksekliğini belirtir.

  • Konsol penceresinin ekran arabelleğine göre konumunu alın veya ayarlayın. ve özellikleri, WindowTop konsol penceresinde görünen ekran arabelleğinin en üst satırını ve en soldaki sütununu almanıza veya ayarlamanıza olanak tanır ve SetWindowPosition yöntemi bu değerleri tek bir yöntem çağrısında ayarlamanıza olanak WindowLeft tanır.

  • ve CursorLeft özelliklerini alarak veya ayarlayarak imlecin CursorTop konumunu alın veya ayarlayın ya da yöntemini çağırarak SetCursorPosition imlecin konumunu ayarlayın.

  • veya yöntemini çağırarak MoveBufferArea ekran arabelleğindeki verileri taşıyın veya Clear temizleyin.

  • ve BackgroundColor özelliklerini kullanarak ForegroundColor ön plan ve arka plan renklerini alın veya ayarlayın ya da yöntemini çağırarak ResetColor arka planı ve ön planı varsayılan renklerine sıfırlayın.

  • yöntemini çağırarak Beep konsol hoparlöründen bip sesi çalın.

.NET Core Notları

Masaüstündeki .NET Framework sınıfı, Console ve GetConsoleOutputCPtarafından GetConsoleCP döndürülen kodlamayı kullanır. Bu kodlama genellikle bir kod sayfası kodlamasıdır. Örneğin kod, kültürü İngilizce (Birleşik Devletler) olan sistemlerde kod sayfası 437 varsayılan olarak kullanılan kodlamadır. Bununla birlikte, .NET Core bu kodlamaların yalnızca sınırlı bir alt kümesini kullanılabilir hale getirebilir. Bu durumda, Encoding.UTF8 konsol için varsayılan kodlama olarak kullanılır.

Uygulamanız belirli kod sayfası kodlamalarına bağımlıysa, herhangi bir Console yöntemi çağırmadan önce aşağıdakileri yaparak bunları kullanılabilir hale getirebilirsiniz:

  1. Projenize System.Text.Encoding.CodePages.dll derlemesine başvuru ekleyin.

  2. EncodingProvider özelliğinden CodePagesEncodingProvider.Instance nesnesini alın.

  3. EncodingProvider Kodlama sağlayıcısı tarafından desteklenen ek kodlamaları kullanılabilir hale getirmek için nesnesini Encoding.RegisterProvider yöntemine geçirin.

Daha Console sonra sınıf, herhangi bir Console çıkış yöntemini çağırmadan önce kodlama sağlayıcısını kaydettiyseniz UTF8 yerine varsayılan sistem kodlamasını otomatik olarak kullanır.

Özellikler

BackgroundColor

Konsolun arka plan rengini alır veya ayarlar.

BufferHeight

Arabellek alanının yüksekliğini alır veya ayarlar.

BufferWidth

Arabellek alanının genişliğini alır veya ayarlar.

CapsLock

CAPS LOCK klavye iki durumlu düğmesinin açık veya kapalı olduğunu belirten bir değer alır.

CursorLeft

İmlecin arabellek alanı içindeki sütun konumunu alır veya ayarlar.

CursorSize

İmlecin bir karakter hücresi içindeki yüksekliğini alır veya ayarlar.

CursorTop

İmlecin arabellek alanı içindeki satır konumunu alır veya ayarlar.

CursorVisible

İmlecin görünür olup olmadığını belirten bir değer alır veya ayarlar.

Error

Standart hata çıkış akışını alır.

ForegroundColor

Konsolun ön plan rengini alır veya ayarlar.

In

Standart giriş akışını alır.

InputEncoding

Konsolun girişi okumak için kullandığı kodlamayı alır veya ayarlar.

IsErrorRedirected

Hata çıkış akışının standart hata akışından yeniden yönlendirilip yönlendirilmediğini gösteren bir değer alır.

IsInputRedirected

Girişin standart giriş akışından yeniden yönlendirilip yönlendirilmediğini gösteren bir değer alır.

IsOutputRedirected

Çıkışın standart çıkış akışından yeniden yönlendirilip yönlendirilmediğini gösteren bir değer alır.

KeyAvailable

Giriş akışında bir tuşa basılıp basılmadığını belirten bir değer alır.

LargestWindowHeight

Geçerli yazı tipine ve ekran çözünürlüğüne göre mümkün olan en fazla sayıda konsol penceresi satırı alır.

LargestWindowWidth

Geçerli yazı tipine ve ekran çözünürlüğüne göre mümkün olan en fazla sayıda konsol penceresi sütununu alır.

NumberLock

NUM LOCK klavye iki durumlu düğmesinin açık veya kapalı olduğunu belirten bir değer alır.

Out

Standart çıkış akışını alır.

OutputEncoding

Konsolun çıkış yazmak için kullandığı kodlamayı alır veya ayarlar.

Title

Konsol başlık çubuğunda görüntülenecek başlığı alır veya ayarlar.

TreatControlCAsInput

Değiştirici tuşu ve C konsol tuşu (Ctrl+C) birleşiminin Control normal giriş olarak mı yoksa işletim sistemi tarafından işlenen bir kesinti olarak mı ele alındığını belirten bir değer alır veya ayarlar.

WindowHeight

Konsol penceresi alanının yüksekliğini alır veya ayarlar.

WindowLeft

Konsol penceresi alanının ekran arabelleğine göre en soldaki konumunu alır veya ayarlar.

WindowTop

Konsol penceresi alanının ekran arabelleğine göre en üst konumunu alır veya ayarlar.

WindowWidth

Konsol penceresinin genişliğini alır veya ayarlar.

Yöntemler

Beep()

Konsol hoparlöründen bip sesi çalar.

Beep(Int32, Int32)

Konsol hoparlörü aracılığıyla belirtilen frekans ve sürenin bip sesini çalar.

Clear()

Konsol arabelleği ve ilgili konsol penceresi görüntü bilgilerini temizler.

GetCursorPosition()

İmlecin konumunu alır.

MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32)

Ekran arabelleğinin belirtilen kaynak alanını belirtilen hedef alanına kopyalar.

MoveBufferArea(Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor)

Ekran arabelleğinin belirtilen kaynak alanını belirtilen hedef alanına kopyalar.

OpenStandardError()

Standart hata akışını alır.

OpenStandardError(Int32)

Belirtilen arabellek boyutuna ayarlanmış standart hata akışını alır.

OpenStandardInput()

Standart giriş akışını alır.

OpenStandardInput(Int32)

Belirtilen arabellek boyutuna ayarlanmış standart giriş akışını alır.

OpenStandardOutput()

Standart çıkış akışını alır.

OpenStandardOutput(Int32)

Belirtilen arabellek boyutuna ayarlanmış standart çıkış akışını alır.

Read()

Standart giriş akışından sonraki karakteri okur.

ReadKey()

Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır. Basılan tuş konsol penceresinde görüntülenir.

ReadKey(Boolean)

Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır. Basılan tuş isteğe bağlı olarak konsol penceresinde görüntülenir.

ReadLine()

Standart giriş akışından sonraki karakter satırını okur.

ResetColor()

Ön plan ve arka plan konsolu renklerini varsayılan değerlerine ayarlar.

SetBufferSize(Int32, Int32)

Ekran arabelleği alanının yüksekliğini ve genişliğini belirtilen değerlere ayarlar.

SetCursorPosition(Int32, Int32)

İmlecin konumunu ayarlar.

SetError(TextWriter)

Error özelliği belirtilen TextWriter nesneye ayarlar.

SetIn(TextReader)

In özelliği belirtilen TextReader nesneye ayarlar.

SetOut(TextWriter)

Out nesnesini hedeflemek TextWriter için özelliğini ayarlar.

SetWindowPosition(Int32, Int32)

Konsol penceresinin ekran arabelleğine göre konumunu ayarlar.

SetWindowSize(Int32, Int32)

Konsol penceresinin yüksekliğini ve genişliğini belirtilen değerlere ayarlar.

Write(Boolean)

Belirtilen Boole değerinin metin gösterimini standart çıkış akışına yazar.

Write(Char)

Belirtilen Unicode karakter değerini standart çıkış akışına yazar.

Write(Char[])

Belirtilen Unicode karakter dizisini standart çıkış akışına yazar.

Write(Char[], Int32, Int32)

Belirtilen Unicode karakter alt dizisini standart çıkış akışına yazar.

Write(Decimal)

Belirtilen Decimal değerin metin gösterimini standart çıkış akışına yazar.

Write(Double)

Belirtilen çift duyarlıklı kayan nokta değerinin metin gösterimini standart çıkış akışına yazar.

Write(Int32)

Belirtilen 32 bit imzalı tamsayı değerinin metin gösterimini standart çıkış akışına yazar.

Write(Int64)

Belirtilen 64 bit imzalı tamsayı değerinin metin gösterimini standart çıkış akışına yazar.

Write(Object)

Belirtilen nesnenin metin gösterimini standart çıkış akışına yazar.

Write(Single)

Belirtilen tek duyarlıklı kayan nokta değerinin metin gösterimini standart çıkış akışına yazar.

Write(String)

Belirtilen dize değerini standart çıkış akışına yazar.

Write(String, Object)

Belirtilen nesnenin metin gösterimini, belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

Write(String, Object, Object)

Belirtilen nesnelerin metin gösterimini, belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

Write(String, Object, Object, Object)

Belirtilen nesnelerin metin gösterimini, belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

Write(String, Object, Object, Object, Object)

Belirtilen nesnelerin metin gösterimini ve değişken uzunluklu parametre listesini, belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

Write(String, Object[])

Belirtilen nesne dizisinin metin gösterimini, belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

Write(UInt32)

Belirtilen 32 bit işaretsiz tamsayı değerinin metin gösterimini standart çıkış akışına yazar.

Write(UInt64)

Belirtilen 64 bit işaretsiz tamsayı değerinin metin gösterimini standart çıkış akışına yazar.

WriteLine()

Geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Boolean)

Belirtilen Boole değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Char)

Belirtilen Unicode karakterini ve ardından geçerli satır sonlandırıcısını, değeri standart çıkış akışına yazar.

WriteLine(Char[])

Belirtilen Unicode karakter dizisini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Char[], Int32, Int32)

Belirtilen Unicode karakter alt dizisini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Decimal)

Belirtilen Decimal değerin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Double)

Belirtilen çift duyarlıklı kayan nokta değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Int32)

Belirtilen 32 bit imzalı tamsayı değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Int64)

Belirtilen 64 bit imzalı tamsayı değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Object)

Belirtilen nesnenin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(Single)

Belirtilen tek duyarlıklı kayan nokta değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(String)

Belirtilen dize değerini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(String, Object)

Belirtilen nesnenin metin gösterimini ve ardından geçerli satır sonlandırıcısını belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

WriteLine(String, Object, Object)

Belirtilen nesnelerin metin gösterimini ve ardından geçerli satır sonlandırıcısını belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

WriteLine(String, Object, Object, Object)

Belirtilen nesnelerin metin gösterimini ve ardından geçerli satır sonlandırıcısını belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

WriteLine(String, Object, Object, Object, Object)

Belirtilen nesnelerin metin gösterimini ve değişken uzunluklu parametre listesini, ardından geçerli satır sonlandırıcısını belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

WriteLine(String, Object[])

Belirtilen nesne dizisinin metin gösterimini ve ardından geçerli satır sonlandırıcısını belirtilen biçim bilgilerini kullanarak standart çıkış akışına yazar.

WriteLine(UInt32)

Belirtilen 32 bit işaretsiz tamsayı değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

WriteLine(UInt64)

Belirtilen 64 bit işaretsiz tamsayı değerinin metin gösterimini ve ardından geçerli satır sonlandırıcısını standart çıkış akışına yazar.

Ekinlikler

CancelKeyPress

Control Değiştirici tuşuna (Ctrl) ve C konsol tuşuna (C) veya Kesme tuşuna aynı anda basıldığında (Ctrl+C veya Ctrl+Break) gerçekleşir.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu güvenli iş parçacığı türüdür.