编程语言——C#基础知识

1 .NET Framework 的体系结构
编程语言——C#基础知识


2 常用命名空间
命名空间
说明

System.Drawing

处理图形和绘图,包括打印

System.Data

处理数据存取和管理,在定义 ADO.NET 技术中扮演重要角色

System.IO

管理对文件和流的同步和异步访问

System.Windows

处理基于窗体的窗口的创建

System.Reflection

包含从程序集读取元数据的类

System.Threading

包含用于多线程编程的类

System.Collections

包含定义各种对象集的接口和类


3 系统预定义类型

类型

描 述

范围/精度

例子

object

所有其它类型的最根本的基础类型


object o = null;

string

字符串类型,一个字符串是一个Unicode字符序列


string s= "Hello";

sbyte

8-bit 有符号整数类型

–128...127

sbyte val = 12;

short

16-bit有符号整数类型

–32,768...32,767

short val = 12;

int

32-bit有符号整数类型

–2,147,483,648...2,147,483,647

int val = 12;

long

64-bit有符号整数类型

–9,223,372,036,854,775,808

...9,223,372,036,854,775,807

long val1 = 12;

long val2 = 34L;

byte

8-bit无符号整数类型

0...255

byte val1 = 12;

byte val2 = 34U;

ushort

16-bit无符号整数类型

0...65,535

ushort val1 = 12;

ushort val2 = 34U;

uint

32-bit无符号整数类型

0...4,294,967,295

uint val1 = 12;

uint val2 = 34U;

ulong
64-bit无符号整数类型
0...18,446,744,073,709,551,615

ulong val1 = 12;

ulong val2 = 34U;

ulong val3 = 56L;

ulong val4 = 78UL;

float
单精度浮点数类型
1.5 × 10−45  3.4 × 10387位精度
float val = 1.23F;
double
双精度浮点数类型
5.0 × 10−324  1.7 × 1030815 位精度

double val1 = 1.23;

double val2 = 4.56D;

bool
布尔类型类型; 一个布尔类型数据不是真就是假
true,false

bool val1 = true;

bool val2 = false;

char
字符类型; 一个字符数据是一个Unicode字符

char val = 'h';
decimal
精确十进制类型,有28个有效位
1.0 × 10−28  7.9 × 102828位精度
decimal val = 1.23M;

4 字面量

类型

类别

后缀

示例/允许的值

bool

布尔

truefalse

int

整数

int x = 100

uint

整数

UU

uint x = 1000u

long

长整型

Ll

long x = 100000L

ulong

无符号长整型

ul,uL,Ul,UL,lu,Lu,lULU

ulong x = 4324ul

float

单精度浮点数类型

Ff

float x = 34.76F

double

双精度浮点数类型

Dd

double x = 763.7245D

decimal

精确十进制类型

Mm

decimal x = 1.544M

char

字符

char x = ‘a’

string

字符串

string =”abc”


5 常用类型相关的方法

int iMax = int.MaxValue;

int pVal = int.Parse(“100”);

iRate = decimal.Round(iRate, 2); //四舍五入

iRate = decimal.Remainder(512.0M, 51.0M);

bt = char.IsLetter(pattern, 3);

bt = char.IsNumber(pattern, 3);

bt = char.IsLower(pattern, 3);

bt = char.IsPunctuation(pattern, 7);

bt = char.IsLetterOrDigit(pattern, 3);


使用Parse转换数字字符串

short shParse = Int16.Parse("100");

int iParse = Int32.Parse("100");

long shParse = Int64.Parse("100");

decimal dParse=decimal.Parse(“99.99");

float sParse=float.Parse(“99.99");

double dParse=double.Parse(“99.99");


C# 中常用的字符串处理方法:
Equals() :比较两个字符串的值是否相等
ToLower():将字符串转换成小写形式
IndexOf():查找某个字符在字符串中的位置
SubString():从字符串中截取子字符串
Join():连接字符串
Split():分割字符串
Trim():去掉字符串两边的空格
……

C# 中 字符串常量可以以 @ 开头声名,这样的优点是转义序列“不”被处理,按“原样”输出。

6 Format 输出字符串;

编程语言——C#基础知识

string record = string.Format("arg1 = {0}, arg2 = {1}, arg3 = {2},", name, age, school);

7 枚举

[access modifiers] enum <identifier> [:enum_base] {enum body}

access modifiers: 默认为internal;
enum_base: 默认为 int;

class MyApp

{

enum Fabric : int {

    Cotton = 1,

    Silk = 2,

    Wool = 4
}

static void Main()

{

     Fabric fab = Fabric.Cotton;

     int fabNum = (int) fab;

     string fabType = fab.ToString();

     Console.WriteLine(fab);

}

}


System.Enum 的方法: 

Enum.IsDefined()

Enum.Parse()

Enum.GetName()


8 数组

数据属于引用类型,因此存储在堆内存中;

int[] arrayInt = new int[6];
string[] names = new string[10];

不规则数组,在它的内部,每个数组的长度可以不同;

9 结构,struct

C#中的数据类型分为两个基本类别
值类型
表示实际数据
只是将值存放在内存中
值类型都存储在堆栈中
intchar、结构

引用类型
表示指向数据的指针或引用
包含内存堆中对象的地址
为 null,则表示未引用任何对象
类、接口、数组、字符串

编程语言——C#基础知识

10 System.Object 方法

Equals(), Finalize(), GetHashCode(), GetType(), MemberwiseClone(), ReferenceEquals(), ToString();

11 C# 的预编译指令

(1) 预编译指令是 C# 编译器在词法分析阶段读取的语句,这些语句可以指示编译器包含或不包含某些代码,甚至可以
根据预处理指令的值终止编译;
(2) 预处理指令最常见的三个用途是:完成条件编译、增加诊断报告错误和警告、定义代码域。

C#预处理命令

说明

#define

#undef

用于定义一个符号,后取消对一个符号得定义。如果定义了一个符号,那么在#if指令中使用时这个符号计算为true

#if

#elif

#else

#endif

类似C#中得ifelseifelse语句

#line

改变行号序列,并且可以标识该行的源文件

#region

#endregion

用于指定一个代码块,使用Visual studio.NET的大纲特性时可以展开或折叠这个代码块

#error

导致编译器报告一个致命错误

#warming

导致编译器报告一个警告,并继续处理


12 控制台输入和输出

Console.Read(): 用来从控制台读取一个字符;返回所读取的字符的Unicode编码值(int 类型,不是Asscii码);
Console.ReadLine():用来从控制台读取一行字符,返回string 字符串;一般情况下,指从一个字符开始,遇到回车符为止;
Console.Write();