C#语言概述

C#语言概述

 

1.型别

型别宣告可以指定新型别的名称和成员。有五种 C# 的型别分类可由使用者定义:类别型别、结构型别、接口型别、列举型别和委派型别。

分类

说明

实值
型别

简单型别

带正负号的整数sbyteshortintlong

不带正负号的整数byteushortuintulong

Unicode 字符char

IEEE 浮点数floatdouble

高精度十进制数decimal

布尔值bool

列举型别

型式为 enum E {...} 的使用者定义型别

结构型别

型式为 struct S {...} 的使用者定义型别

参考
型别

类别型别

所有其它型别的最终基底型别object

Unicode 字符串string

型式为 class C {...} 的使用者定义型别

界面型别

型式为 interface I {...} 的使用者定义型别

数组型别

一维及多维例如 int[] int[,]

委派型别

型式为 delegate T D(...) 的使用者定义型别

 

 

 

 

 

 

 

 

 

 

 

 

2.运算子

依优先级 (由高到低) 列出运算子分类同一分类中的运算子具有相同的优先级。

 

分类

表达式

说明

主要

x.m

成员存取

x(...)

方法和委派引动过程

x[...]

数组和索引子存取

x++

后置递增

x--

后置递减

new T(...)

对象和委派建立

new T[...]

数组建立

typeof(T)

取得 T System.Type 物件

checked(x)

checked 内容中评估表达式

unchecked(x)

unchecked 内容中评估表达式

一元

+x

识别值

-x

否定

!x

逻辑否定

~x

位否定

++x

前置递增

--x

前置递减

(T)x

x 明确地转换为型别 T

乘法类

x * y

乘法

x / y

除法

x % y

余数

加法类

x + y

加法、字符串串连、委派组合

x – y

减法、委派移除

移位

x << y

向左移位

x >> y

向右移位

关系和型别测试

x < y

小于

x > y

大于

x <= y

小于或等于

x >= y

大于或等于

x is T

如果 x T 就传回 true否则传回 false

x as T

传回型别为 T x如果 x 不是 T 则传回 null

相等

x == y

等于

x != y

不等于

逻辑 AND

x & y

整数字元 AND、布尔逻辑 AND

逻辑 XOR

x ^ y

整数字元 XOR、布尔逻辑 XOR

逻辑 OR

x | y

整数字元 OR、布尔逻辑 OR

条件式 AND

x && y

只有在 x true 时才评估 y

条件式 OR

x || y

只有在 x false 时才评估 y

条件式

x ? y : z

如果 x true 就评估 y如果 x false 则评估 z

设定

x = y

设定

x  op= y

复合设定支持的运算子为

*=   /=   %=   +=   -=   <<=   >>=   &=   ^=   |=

 

3. 陈述式

下表列出 C# 的陈述式以及每个陈述式的范例

陈述式

范例

区域变量宣告

static void Main () {
           int a;
           int b = 2, c = 3;
           a = 1;
           Console.WriteLine(a + b + c);
}

区域常数宣告

static void Main () {
           const float pi = 3.1415927f ;
           const int r = 25;
           Console.WriteLine(pi * r * r);
}

运算陈述式

static void Main () {
           int i;
           i = 123;                                                              // Expression statement
           Console.WriteLine(i);        // Expression statement
           i++;                                                                    // Expression statement
           Console.WriteLine(i);        // Expression statement
}

if 陈述式

static void Main (string[] args) {
           if (args.Length == 0) {
                     Console.WriteLine("No arguments");
           }
           else {
                     Console.WriteLine("One or more arguments");
           }
}

switch 陈述式

static void Main (string[] args) {
           int n = args.Length;
           switch (n) {
                     case 0:
                                Console.WriteLine("No arguments");
                                break;
                     case 1:
                                Console.WriteLine("One argument");
                                break;
                     default:
                                Console.WriteLine("{0} arguments", n);
                                break;
                     }
           }
}

while 陈述式

static void Main (string[] args) {
           int i = 0;
           while (i < args.Length) {
                     Console.WriteLine(args[i]);
                     i++;
           }
}

do 陈述式

static void Main () {
           string s;
           do {
                     s = Console.ReadLine();
                     if (s != null) Console.WriteLine(s);
           } while (s != null);
}

for 陈述式

static void Main (string[] args) {
           for (int i = 0; i < args.Length; i++) {
                     Console.WriteLine(args[i]);
           }
}

foreach 陈述式

static void Main (string[] args) {
           foreach (string s in args) {
                     Console.WriteLine(s);
           }
}

break 陈述式

static void Main () {
           while (true) {
                     string s = Console.ReadLine();
                     if (s == null) break;
                     Console.WriteLine(s);
           }
}

continue 陈述式

static void Main (string[] args) {
           for (int i = 0; i < args.Length; i++) {
                     if (args[i].StartsWith("/")) continue;
                     Console.WriteLine(args[i]);
           }
}

goto 陈述式

static void Main (string[] args) {
           int i = 0;
           goto check;
           loop:
           Console.WriteLine(args[i++]);
           check:
           if (i < args.Length) goto loop;
}

return 陈述式

static int Add(int a, int b) {
           return a + b;
}

static void Main () {
           Console.WriteLine(Add(1, 2));
           return;
}

throw try 陈述式

static double Divide(double x, double y) {
           if (y == 0) throw new DivideByZeroException();
           return x / y;
}

static void Main (string[] args) {
           try {
                     if (args.Length != 2) {
                                throw new Exception("Two numbers required");
                     }
                     double x = double.Parse(args[0]);
                     double y = double.Parse(args[1]);
                     Console.WriteLine(Divide(x, y));
           }
           catch (Exception e) {
                     Console.WriteLine(e.Message);
           }
}

checked unchecked 陈述式

static void Main () {
           int i = int.MaxValue;
           checked {
                     Console.WriteLine(i + 1);            // Exception
           }
           unchecked {
                     Console.WriteLine(i + 1);            // Overflow
           }
}

lock 陈述式

class Account
{
           decimal balance;

           public void Withdraw(decimal amount) {
                     lock (this) {
                                if (amount > balance) {
                                           throw new Exception("Insufficient funds");
                                }
                                balance -= amount;
                     }
           }
}

using 陈述式

static void Main () {
           using (TextWriter w = File.CreateText("test.txt")) {
                     w.WriteLine("Line one");
                     w.WriteLine("Line two");
                     w.WriteLine("Line three");
           }
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值