/*
常量是固定的量,在运行过程中不可以改变的量
const 来修饰不能改变的量
*/// public private protected internal 是访问修饰符usingSystem.Security.Cryptography.X509Certificates;namespaceConsoleApp1{internalclassProgram{publicconstint a =15;//定义一个整型常量publicconstchar b='A';//定义一个字符常量publicconststring c ="hello world";//定义一个字符串常量staticvoidMain(string[] args){
Console.WriteLine("Hello world \a");//\a表示响铃
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(@"你好啊\a");//@带的字符串会取消字符串中的转义}}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
变量
/*
变量声明是指程序运行前,编译器告诉程序变量的名称、类型、长度等
变量初始化提高了c#安全性,调用未初始化的变量会当成错误
*/namespaceConsoleApp2{internalclassProgram{staticvoidMain(string[] args){int a =10;int b =20;int c = a + b;//定义三个变量
Console.WriteLine("a:{0},b:{1},c:{2}",a,b,c);int num=Convert.ToInt32(Console.ReadLine());//从键盘读取的数字是字符串类型的,使用强制类型转换
Console.WriteLine("num:{0}",num);}}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
变量类型
值类型
/*
值类型:可以直接存储数据
引用类型:存储的是数据的引用,这里跟c语言中的指针类型不一样,因为指针类型和引用类型存储的区域不一样,引用类型存储在堆上
值类型:派生system.ValueType,值类型不能包含Null
*/namespaceConsoleApp3{internalclassProgram{staticvoidMain(string[] args){double a =3.1415926;
Console.WriteLine(a);float b = Convert.ToInt16(a);//double强制转换为float类型
Console.WriteLine(b);bool c=false;
Console.WriteLine(c);int d=Convert.ToInt32(c);//将bool类型直接转换为int类型
Console.WriteLine(d);
Console.WriteLine("请输入一个数字,我会判断是偶数还是奇数");int e =Convert.ToInt32(Console.ReadLine());//注意这里使用ReadLine,Read输入的是一个acsii值if(e%2==0){
Console.WriteLine("{0}是一个偶数", e);}else{
Console.WriteLine("{0}是一个奇数", e);}}}}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
引用类型
/*
引用类型:不直接存储变量的值,而是存储数据的地址
必须使用new 来创建引用类型的变量
引用类型是由垃圾回收机制来管理的
引用类型在未被赋值前都是null
多个引用类型都可以引用同一对象,对一个变量执行的操作会影响另一个变量
*/namespaceConsoleApp4{internalclassProgram{classA{publicint num =0;//声明一个共有类型的变量}staticvoidMain(string[] args){int a =0;int b = a;
b =100;
Console.WriteLine("a={0},b={1}",a,b);//a,b都是值类型,b改变并没有改变a的值A n1=newA();//使用new创建一个引用对象A n2=n1;//n2都指向同一个对象
n2.num =100;
Console.WriteLine("n1.num={0},n2.num={1}", n1.num, n2.num);}}}/*
C#里面把数据类型分为两大类,分别为值类型和引用类型。
值类型包括基本数据类型(int、char、double等)、结构和枚举。
引用类型包括接口、数组、类等
值类型会以栈的方式分配一块相适应的存储区域,对变量的读取直接就在该内存区域直接进行
引用类型不存储数据,而是存储数据的引用。引用类型分两步创建,首先在栈上创建引用变量,然后在堆上创建对象本身,然后再把堆上的首地址赋给引用变量
*/