@C#学习笔记
C#
1. 基本数据类型
1.1 Int
-
sbyte(-128 to 127 ): signed 8-bit
-
byte(0 to 255): unsigned 8-bit
-
short(-32,768 to 32,767): signed 16-bit
-
ushort(0 to 65,535): unsigned 16-bit
-
int(-2,147,483,648 to 2,147,483,647): signed 32-bit
-
uint(0 to 4,294,967,295): unsigned 32-bit
-
long(-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807):signed 64-bit
-
ulong(0 to 18,446,744,073,709,551,615): unsigned 64-bit
1.2 Float
1.2.1种类:
- float 32-bits
- 默认值:0.0F
- double 64-bits
- 默认值:0.0D
- decimal 128-bits
- 默认值:0.0M
float floatPI = 3.141592653589793238f;
double doublePI = 3.141592653589793238;
Console.WriteLine("Float PI is: {0}", floatPI);
Console.WriteLine("Double PI is: {0}", doublePI);
1.2.2 操作
- equal
不能准确比较浮点数
double a = 1.0f;
double b = 0.33f;
double sum = 1.33f;
bool equal = (a+b == sum); // False!!!
Console.WriteLine("a+b={0} sum={1} equal={2}", a+b, sum, equal);
- 精确
double a = 2.3455;
Console.WriteLine(Math.Round(a))
// result: 2 取整
Console.WriteLine(Math.Round(a, 3))
// result: 2.346 精确到第三位
Console.WriteLine(Math.Ceiling(a))
// result: 3 向上取整
Console.WriteLine(Math.Floor(a))
// result: 2 向下取整
1.3 Bool
- 默认值:false
int a = 1;
int b = 2;
bool greaterAB = (a > b);
Console.WriteLine(greaterAB); // 错误
bool equalA1 = (a == 1);
Console.WriteLine(equalA1); // 正确
1.4 Character
与C++不同
- ?:
int?double?//支持int/double 为空
- 默认值:‘\0’
char symbol = 'a';
Console.WriteLine("The code of '{0}' is: {1}", symbol, (int) symbol);
symbol = 'b';
Console.WriteLine("The code of '{0}' is: {1}", symbol, (int) symbol);
symbol = 'A';
Console.WriteLine("The code of '{0}' is: {1}", symbol, (int) symbol);
symbol = 'щ'; //西里尔字母“sht”
Console.WriteLine("The code of '{0}' is: {1}", symbol, (int) symbol);
1.6 String
- 默认值:null(no value)
- 字符串可用**‘+’**操作符相加
string firstName = "Ivan";
string lastName = "Ivanov";
Console.WriteLine("Hello, {0}!", firstName);
string fullName = firstName + " " + lastName;
Console.WriteLine("Your full name is {0}.", fullName);
//甚至可以将字符串和数字相加
int age = 21;
Console.WriteLine("Hello, I am " + age + " years old");
1.7 object
- c#中独特的特数据类型
- 是其他所有类型的基类
- 可以存任何值!
object dataContainer = 5;
Console.Write("The value of dataContainer is: ");
Console.WriteLine(dataContainer);
dataContainer = "Five";
Console.Write("The value of dataContainer is: ");
Console.WriteLine(dataContainer);
2.变量
2.1 变量声明
- 语法如下:
<data_type> <identifier> [= <initialization>];
- eg:
int height = 200;
2.2 变量定义
int New = 2; // 字母N开头
int _2Pac; // 下划线_开头
string поздрав= "Hello"; // 可用Unicode符号命名
string greeting = "Hello";
int n = 100; // 无描述命名
int numberOfClients = 100; // 有描述命名,推荐!!!
int numberOfPrivateClientsOfTheFirm = 100; // 描述的过分,看的头疼
int new; // new是一个关键字,不能用作变量名
int 2Pac; // 变量名不能用数字开头
2.3 变量赋值
// 变量赋值
// 整型变量赋值:
int num = new int(); // num = 0
// 浮点型变量赋值
float heightInMeters = 1.74f;
// 使用一个已经赋值的变量
string greeting = "Hello World!";
string message = greeting;
- 注意变量的作用域
- 常量:
const int x=1; //不可更改
2.4 Literals
Literals:源代码中值的表示形式
2.4.1 Real Literals
// 以下变量初始化为相同的值:
int numberInHex = -0x10;
int numberInDec = -16;
// 正确的赋值方法如下:
float realNumber = 12.5f;
// 指数格式赋值:
float realNumber = 6.02e+23f;
float realNumber = 1.25e-7f
2.4.2 Characters Literals
char symbol = 'a'; // 普通符号
symbol = '\u006F'; // 字符a的Unicode表示
symbol = '\u8449'; // 葉
symbol = '\''; // 赋值单引号符号
symbol = '\\'; // 赋值反斜杠符号
symbol = '\n'; // 换行符
symbol = '\t'; // 制表符
symbol = "a"; // 不正确!应使用单引号
2.4.3 String Literals
string s = @"C:\WINDOWS\System32\drivers";
@后面的内容忽略使用的转义序列
2.5 Nullable Types
Nullable类型是System.Nullable 结构的实例,一个nullable类型能代表它下面的值的正确范围,还能取null值
eg:
int ? ,double ?// int/double可为空值
//拿整型举例:
int? someInteger = null;
Console.WriteLine("This is the integer with Null value -> " + someInteger);
someInteger = 5;
Console.WriteLine("This is the integer with value 5 -> " + someInteger);