C# Konstanten

Konstanten sind feste Werte, die sich während der Programmausführung nicht ändern. Konstanten können einen beliebigen grundlegenden Datentyp haben, wie z. B. Ganzzahlkonstanten, Gleitkommakonstanten, Zeichenkonstanten, String-Konstanten und Enumerationskonstanten.

Konstanten können wie reguläre Variablen behandelt werden, außer dass ihre Werte nach der Definition nicht geändert werden können.

Ganzzahlkonstanten

Ganzzahlkonstanten können Dezimal-, Oktal- oder Hexadezimalkonstanten sein. Das Präfix gibt die Basis an: 0x oder 0X kennzeichnet Hexadezimal, 0 kennzeichnet Oktal, und kein Präfix kennzeichnet Dezimal.

Ganzzahlkonstanten können auch Suffixe haben, die eine Kombination aus U und L sein können, wobei U und L für unsigned bzw. long stehen. Das Suffix kann in Groß- oder Kleinschreibung vorliegen, und mehrere Suffixe können in beliebiger Reihenfolge kombiniert werden.

Hier sind einige Beispiele für Ganzzahlkonstanten:

212         /* 合法 */
215u        /* 合法 */
0xFeeL      /* 合法 */
078         /* 非法:8 不是一个八进制数字 */
032UU       /* 非法:不能重复后缀 */

Im Folgenden sind Beispiele für Ganzzahlkonstanten verschiedener Typen aufgeführt:

85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* int */
30u        /* 无符号 int */
30l        /* long */
30ul       /* 无符号 long */

Gleitkommakonstanten

Eine Gleitkommakonstante besteht aus einem ganzzahligen Teil, einem Dezimalpunkt, einem Nachkommateil und einem Exponententeil. Sie können Gleitkommakonstanten in Dezimalform oder Exponentialform ausdrücken.

Hier sind einige Beispiele für Gleitkommakonstanten:

3.14159       /* 合法 */
314159E-5L    /* 合法 */
510E          /* 非法:不完全指数 */
210f          /* 非法:没有小数或指数 */
.e55          /* 非法:缺少整数或小数 */

In Gleitkommaform ausgedrückt muss sie einen Dezimalpunkt, einen Exponenten oder beides enthalten. In Exponentialform ausgedrückt muss sie einen ganzzahligen Teil, einen Nachkommateil oder beides enthalten. Ein vorzeichenbehafteter Exponent wird mit e oder E dargestellt.

Zeichenkonstanten

Zeichenkonstanten werden in einfache Anführungszeichen eingeschlossen, zum Beispiel 'x', und können in einer einfachen Variablen vom Zeichentyp gespeichert werden. Eine Zeichenkonstante kann ein gewöhnliches Zeichen (z. B. 'x'), eine Escape-Sequenz (z. B. '\t') oder ein universelles Zeichen (z. B. '\u02C0') sein.

In C# haben bestimmte Zeichen eine besondere Bedeutung, wenn ihnen ein Backslash vorangestellt ist. Sie können verwendet werden, um einen Zeilenumbruch (\n) oder einen Tabulator (\t) darzustellen. Hier sind einige Escape-Sequenz-Codes aufgeführt:

Escape-SequenzenBedeutung
\\\ Zeichen
\'' Zeichen
\"" Zeichen
\?? Zeichen
\aAlarm oder Klingel
\bRücktaste
\fSeitenvorschub
\nZeilenumbruch
\rWagenrücklauf
\tHorizontaler Tabulator (Tab)
\vVertikaler Tabulator (Tab)
\oooOktalzahl mit einer bis drei Ziffern
\xhh . . .Hexadezimalzahl mit einer oder mehreren Ziffern

Im Folgenden finden sich einige Beispiele für Escape-Sequenz-Zeichen:

namespace EscapeChar
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello\tWorld\n\n");
            Console.ReadLine();
        }
    }
}

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Hello   World

String-Konstanten

Zeichenkettenkonstanten werden in doppelte Anführungszeichen""innen eingeschlossen, oder in@""innen eingeschlossen. Zeichenkettenkonstanten enthalten Zeichen ähnlich wie Zeichenkonstanten, die Folgendes sein können: gewöhnliche Zeichen, Escape-Sequenzen und universelle Zeichen.

Wenn Sie Zeichenkettenkonstanten verwenden, können Sie eine sehr lange Zeile in mehrere Zeilen aufteilen, und Sie können Leerzeichen verwenden, um die Teile zu trennen.

Hier sind einige Beispiele für Zeichenkettenkonstanten. Die unten aufgeführten verschiedenen Formen stellen dieselbe Zeichenkette dar.

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";               // hello     world
string d = @"hello \t world";               // hello \t world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one
two
three";

Konstanten definieren

Konstanten werden durch das Schlüsselwortconstdefiniert. Die Syntax zum Definieren einer Konstante ist wie folgt:

const <data_type> <constant_name> = value;

Der folgende Code zeigt, wie Konstanten in einem Programm definiert und verwendet werden:

Beispiel

using System;

public class ConstTest
{
    class SampleClass
    {
        public int x;
        public int y;
        public const int c1 = 5;
        public const int c2 = c1 + 5;

        public SampleClass(int p1, int p2)
        {
            x = p1;
            y = p2;
        }
    }

    static void Main()
    {
        SampleClass mC = new SampleClass(11, 22);
        Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
        Console.WriteLine("c1 = {0}, c2 = {1}",
                          SampleClass.c1, SampleClass.c2);
    }
}

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

x = 11, y = 22
c1 = 5, c2 = 10
Weitere Erweiterungen