一、基本数据类型
-
数值类型
(1)整形
类型 | 说明 |
---|---|
sbyte | (8位有符号整数) -128到127 |
byte | (8位有符号整数) 0到255 |
int16=short | (表示16位有符号整数) -32768到32767 |
int=int32 | (表示32位有符号整数) -2147483648到 2147483647 |
int64=long | (表示64位有符号整数) -9223372036854775808到 9223372036854775807 |
Uint16=Ushort | (表示16位无符号整数) 0到65535 |
Uint=Uint32 | (表示32位无符号整数) 0到4294967295 |
Uint64=Ulong | (表示64位无符号整数) 0到18446744073709551615 |
(2)非整型
类型 | 说明 |
---|---|
单精度浮点型float | (表示7位有符号实数) ±1.401298E-45到 ±3.402823E38 |
双精度浮点型double | (表示16位有符号实数) -1.7E-308~1.7E+308 |
更高精度数值decimal | (财务专用) -79228162514264337593543950335到79228162514264337593543950335 |
(3)非数值类型
- 字符char
- 字符串string
- bool
二、变量
-
定义:
变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
-
1、变量的命名规则
(1)有英文字母、数字、下划线组成,不能含有空格和其他字符(@除外,备注:@name和name是一样的);
(2)不能以数字开头(88name这样命名是错误的);
(3)不能用关键字命名(例如double,public,static等等这些关键字不能使用);
-
命名注意点
(1)给变量分配有意义的名称(例如:name一看就知道表示的是名字);
(2)命名类和方法时使用Pascal(帕斯卡)样式(MyData),命名变量时使用Camel(驼峰)样式(myData);
(3)不要通过区分大小写的不同来区分变量;
(4)变量(标识符)名字不适宜太长,尽量精简(UserNameData太长,不适宜用来命名);
-
2、变量的声明方式
(1)先声明后赋值
int I;
I=100;(2)声在明的同时赋值
int I=100;
(3)可同时声明多个变量
int a=100,b=200,c=300;
三、变量的作用域
-
定义:
变量的作用域是可以访问该变量的的代码区域。
-
作用域规则
(1)只要字段所属的类在某个作用域内,其字段也在该作用域内;
(2) 局部变量的作用域只在离它最近的大括号内部;
(3)在循环或类似的语句中声明的局部变量存在于该循环体内;
案例如下:
class Program
{
static void Main(string[] args)
{
// a,b,A为全局变量,作用域为整个程序内
int a = 10;
int b = 20;
int A = a + b;
if(A<30)
{
// c,d为局部变量,作用域为if语句内部
int c = 30;
int d = c - A;
Console.WriteLine(d);
}
int B = a + b + c;//在这里调用c时程序就会报错,因为c是局部变量,它的作用域只在if语句下的大阔号里
Console.ReadKey();
}
}
四、修饰符
五、屏幕输入
- 案例
Console.WriteLine("请输入你的名字");
string name=Console.ReadLine();
六、转换
- 隐式转换:简单意义上来说就是从范围较小的整数(或实数)类型隐式转换为范围较大整数(或实数)类型;(自动提升类型)
int a=60;
float b=10.99f;
float c=a+b;
- 显示转换:简单意义上说就是从范围较大的整数(或实数)类型强制转换为范围较小整数(或实数)类型;
int a=100;
double b=19.99d;
int c=(int)(a+b);
- 类型转换:可实现不同数值类型之间的转换
Convter.ToInt16();
Convter.ToInt32();
Convter.ToInt64();
Convter.ToUInt16();
Convter.ToUInt32();
Convter.ToUInt64();
Convter.Double();
Convter.Decimal();
Convter.char();
Convter.string();
用法举例:
//把int型转换为字符char型
int a=10;
int b=60;
char c=(char)(a+b); //char c=Convert.ToChar(a+b);
Console.WriteLine(c);
//输出结果为大写字母F;因为字母F对应的ASCII码表值为70;
七、复合数据类型
- 枚举
// 枚举列表中的每个符号(成员)代表一个整数值,默认情况下,第一个枚举符号的值是 0,后面逐个增加1。但是你可以自己定义每个成员的值。
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
static void Main(string[] args)
{
int WeekdayStart = (int)Days.Mon;
int WeekdayEnd = (int)Days.Fri;
Console.WriteLine("Monday:{0}", WeekdayStart); //输出结果为Monday:1
Console.WriteLine("Friday:{0}", WeekdayEnd); //输出结果为Friday:5
Console.ReadKey();
}
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
static void Main(string[] args)
{
int[] yizhou = new int[7] { 7, 8, 9, 10, 22, 40, 13 };
int WeekdayStart = yizhou[(int)Days.Mon];
int WeekdayEnd = yizhou[(int)Days.Fri];
Console.WriteLine("Monday:{0}", WeekdayStart);//输出结果为Monday:8
Console.WriteLine("Friday:{0}", WeekdayEnd);//输出结果为Friday:40
Console.ReadKey();
}
enum Num { a = 8, b, c = 1, e, f, g };
static void Main(string[] args)
{
int A = (int)Num.a;
int E = (int)Num.e;
int C = (int)Num.b;
Console.WriteLine(A);//输出结果为8
Console.WriteLine(E);//输出结果为2
Console.WriteLine(C);//输出结果为9
Console.ReadKey();
- 结构体
- 类
- 接口
- 委托
- 数组
八、课后习题
-
1、写一个程序,使输出结果为下图所示:
Console.WriteLine("******************");
Console.WriteLine("*** ***");
Console.WriteLine("*** 雷潮教育 ***");
Console.WriteLine("*** ***");
Console.WriteLine("******************");
- 2、读取玩家姓名、性别、成绩,输出结果为名字加成绩等级(成绩大于等于80为A,大于等于60且小于80为B,小于60为C)。
Console.WriteLine("请输入你的姓名:");
string name= Console.ReadLine();
Console.WriteLine("请输入你的年龄:");
int age = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入你的成绩:");
double score = Convert.ToDouble(Console.ReadLine());
char cha;
if(score>80)
{
cha = 'A';
}
else if(score>60&&score<80)
{
cha = 'B';
}
else
{
cha = 'C';
}
Console.WriteLine(name + cha);
Console.ReadKey();
- 3、声明一个电脑类,里面有电脑的价格,要求这个价格能够被外界访问。书写10遍public,private,protected,internal的定义用自己的语言写出来。
class Program:Computer //Program继承了Computer
{
static void Main(string[] args)
{
Computer c=new Computer();
Program p=new Program();
p.colour ="red";
p.price =4888;
p.brand ="ASUS";
Console.WriteLine(p.colour);
Console.WriteLine(p.price);
Console.WriteLine(p.brand);
Console.ReadKey();
}
}
class Computer //声明一个电脑类
{
public int price;
private double weight;
protected string colour;
internal string brand;
}
Public:访问不受限制 ;
Protected:访问仅限于此类(也就是本类的成员)或从此类派生的类 (继承此类);
Private: 访问仅限于此类(也就是本类的成员);
Internal:访问仅限该类能够由程序集中的所有文件使用,而不能由程序集之外的对象使用 ;
Protected internal:访问仅限于此程序或从此类派生出的类 ;