2-1 变量、常量
常量定义格式:const 数据类型 常量名称=常量值
变量作用域为包含它的大括号内
“@”的作用:
①忽略转义字符。如
Console.WriteLine(@"忽略转义字符\n");//输出结果:忽略转义字符\n
②可以使字符串跨行。
string s1 = @"第一行
第二行
第三行";
③将关键字作为标识符。如@namespace、@class
2-2 数据类型
值类型存储在栈中,引用类型存储在堆中。
其中引用类型的变量名存储在栈中,并指向在堆中的引用值。
值类型包括数值类型(整数类型、浮点数类型)、布尔类型(true/false占4个字节)、字符类型(单个字符 char x='A')。
引用类型包括有对象(object)类型和字符串(string)类型两种。object类型是基类型,可把任何类型的值赋给它。在编程时需要new出来的变量类型都是引用型。
object s2 = 1024;
object s3 = "什么类型都可以";
字符串的不可变性是指,当给字符串重新赋值后,老值没有销毁,而是重新开辟空间存储新值,并改变栈中变量保存的地址,当程序结束后,GC(垃圾回收)扫描整个内存,把没有被指向的空间进行销毁。字符串可以看作char类型的只读数据。
小练习
Console.WriteLine("请输入您的姓名:");
string name = Console.ReadLine();
Console.WriteLine("请输入您的年龄:");
string age = Console.ReadLine();
Console.WriteLine("您好,{0}!您{1}岁了",name,age);//双引号内容中转义字符和索引号{i}不原样输出,且索引号必须从0开始不间断
Console.WriteLine("您好"+name+"您的年龄是"+age);