1. 程式人生 > 實用技巧 >C#變數與常量

C#變數與常量

C#變數

一個變數只不過是一個供程式操作的儲存區的名字。在 C# 中,每個變數都有一個特定的型別,型別決定了變數的記憶體大小和佈局。範圍內的值可以儲存在記憶體中,可以對變數進行一系列操作。

我們已經討論了各種資料型別。C# 中提供的基本的值型別大致可以分為以下幾類:

型別舉例
整數型別 sbyte、byte、short、ushort、int、uint、long、ulong 和 char
浮點型 float 和 double
十進位制型別 decimal
布林型別 true 或 false 值,指定的值
空型別 可為空值的資料型別

 bool valBool = true
;//預設false byte valByte = 128;//預設0 無符號八位整數 範圍0 到 255 跟java中-128~127不同 不過總數也是2的8次方 sbyte的範圍就與java的byte相符 decimal valDecimal = 6.6m;//128 位精確的十進位制值,28-29 有效位數 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M 用來儲存金錢 大概類似java的BigDecimal類?是基本型別的話應該效率比較高 sbyte valSByte = -128;//有符號八位整數 -128~127 sbyte=signed byte uint
valUInt = 233;//確保是正整數時才用uint宣告 uint= unsigned int 無符號32位整數 float valFloat=6.18f; var valVar = 1.1;//自動轉換double string 或者float string valString = "";

C# 允許定義其他值型別的變數,比如enum,也允許定義引用型別變數,比如class

enum ENUM
{
}
class CLASS
{

}

C# 中的變數定義

C# 中變數定義的語法:

<data_type> <variable_list>;

在這裡,data_type 必須是一個有效的 C# 資料型別,可以是 char、int、float、double 或其他使用者自定義的資料型別。variable_list 可以由一個或多個用逗號分隔的識別符號名稱組成。

一些有效的變數定義如下所示:

int i, j, k;
char c, ch;
float f, salary;
double d;

可以在變數定義時進行初始化:

int i = 100;

C# 中的變數初始化

變數通過在等號後跟一個常量表達式進行初始化(賦值)。初始化的一般形式為:

variable_name = value;

變數可以在宣告時被初始化(指定一個初始值)。初始化由一個等號後跟一個常量表達式組成,如下所示:

<data_type> <variable_name> = value;

一些例項:

int d = 3, f = 5;    /* 初始化 d 和 f. */
byte z = 22;         /* 初始化 z. */
double pi = 3.14159; /* 宣告 Π的近似值 */
char x = 'x';        /* 變數 x 的值為 'x' */

正確地初始化變數是一個良好的程式設計習慣,否則有時程式會產生意想不到的結果。

接受來自使用者的值

System名稱空間中的Console類提供了一個函式ReadLine(),用於接收來自使用者的輸入,並把它儲存到一個變數中。

例如:

Console.WriteLine("insert two num to calculate.");
//readLine 獲取使用者輸入(String) 再用toint32轉換成int型別
int first = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"{first} and?");
int second = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"{first} + {second} ="+(first+second));

函式Convert.ToInt32()把使用者輸入的資料轉換為 int 資料型別,因為Console.ReadLine()只接受字串格式的資料。

C# 中的 Lvalues 和 Rvalues

C# 中的兩種表示式:

  1. lvalue:lvalue 表示式可以出現在賦值語句的左邊或右邊。

  2. rvalue:rvalue 表示式可以出現在賦值語句的右邊,不能出現在賦值語句的左邊。

變數是 lvalue 的,所以可以出現在賦值語句的左邊。數值是 rvalue 的,因此不能被賦值,不能出現在賦值語句的左邊。下面是一個有效的語句:

int g = 20;

下面是一個無效的語句,會產生編譯時錯誤:

10 = 20;

C#常量

常量是固定值,程式執行期間不會改變。常量可以是任何基本資料型別,比如整數常量、浮點常量、字元常量或者字串常量,還有列舉常量。

常量可以被當作常規的變數,只是它們的值在定義後不能被修改。

整數常量

整數常量可以是十進位制、八進位制或十六進位制的常量。字首指定基數:0x 或 0X 表示十六進位制,0 表示八進位制,沒有字首則表示十進位制。

整數常量也可以有後綴,可以是 U 和 L 的組合,其中,U 和 L 分別表示 unsigned 和 long。字尾可以是大寫或者小寫,多個字尾以任意順序進行組合。

這裡有一些整數常量的例項:

212         /* 合法 */
215u        /* 合法 */
0xFeeL      /* 合法 */
078         /* 非法:8 不是一個八進位制數字 */
032UU       /* 非法:不能重複字尾 */

以下是各種型別的整數常量的例項:

85         /* 十進位制 */
0213       /* 八進位制 */
0x4b       /* 十六進位制 */
30         /* int */
30u        /* 無符號 int */
30l        /* long */
30ul       /* 無符號 long */

浮點常量

一個浮點常量是由整數部分、小數點、小數部分和指數部分組成。您可以使用小數形式或者指數形式來表示浮點常量。

這裡有一些浮點常量的例項:

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

使用小數形式表示時,必須包含小數點、指數或同時包含兩者。使用指數形式表示時,必須包含整數部分、小數部分或同時包含兩者。有符號的指數是用 e 或 E 表示的。

字元常量

字元常量是括在單引號裡,例如,'x',且可儲存在一個簡單的字元型別變數中。一個字元常量可以是一個普通字元(例如 'x')、一個轉義序列(例如 '\t')或者一個通用字元(例如 '\u02C0')。

在 C# 中有一些特定的字元,當它們的前面帶有反斜槓時有特殊的意義,可用於表示換行符(\n)或製表符 tab(\t)。在這裡,列出一些轉義序列碼:

轉義序列含義
\\ \ 字元
\' ' 字元
\" " 字元
\? ? 字元
\a Alert 或 bell
\b 退格鍵(Backspace)
\f 換頁符(Form feed)
\n 換行符(Newline)
\r 回車
\t 水平製表符 tab
\v 垂直製表符 tab
\ooo 一到三位的八進位制數
\xhh . . . 一個或多個數字的十六進位制數

以下是一些轉義序列字元的例項:

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

當上面的程式碼被編譯和執行時,它會產生下列結果:

Hello   World

字串常量

字串常量是括在雙引號""裡,或者是括在@""裡。字串常量包含的字元與字元常量相似,可以是:普通字元、轉義序列和通用字元

使用字串常量時,可以把一個很長的行拆成多個行,可以使用空格分隔各個部分。

這裡是一些字串常量的例項。下面所列的各種形式表示相同的字串。

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";

定義常量

常量是使用const關鍵字來定義的 。定義一個常量的語法如下:

const <data_type> <constant_name> = value;

下面的程式碼演示瞭如何在程式中定義和使用常量:

例項

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);
    }
}

當上面的程式碼被編譯和執行時,它會產生下列結果:

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

自己記錄的時候就發現自己腦子裡什麼都沒有,光看教程覺得有些繁瑣

簡單的就歸納為一個可以變化和一個不可以變化的量了

還是借(抄)鑑爽

想深入瞭解一些概念又看不懂,只好抄一些淺顯一點的內容混日子這樣子