1、程序的基本任务是:对数据进行处理
2、数据分为变量与常量
变量的值可以改变,本质上是内存的空间,用来存储信息
常量的值是固定的,直接写出来的,称字面常量
3、变量声明与赋值
public class Test
{
public static void Main()
{
int x,y=8;//
double d=3.1415;//
bool b=true;//
String s="Hello";//
Person p=new Person();//声明且赋值
}
}
变量命名(标识符)要遵守如下的规则:
(1)不能是C#关键字
(2)由字母、数字、下划线构成(不建议使用下划线,最好使用大小写区分)
(3)第一个字符必须是字母或下划线
(4)不要太长,一般不超过31个字符为宜
(5)变量名最好不要与库函数名、类名相同
(6)C#是大小写敏感的
4、数据类型的概念
int age=5;
Label1.Left+=5;
Timer1.Enabled=true;
Text1.Text="Hello";
DateTime.Now
数据类型【本质上】:是数据的存储方式及其能参与的运算的抽象
值类型:int,double,Point,Size,DateTime
引用类型:Button,Label,Book,Person
int a=5;
int b=a;
Person p=new Person();
Person p2=p;
DataTime t=new DateTime(2018,1,1);
DataTime t12=t;
都属于类型:
int a=5;
DateTime t=new DateTime(2020,12,31);
Button btn=new Button();
double.Perse();
都属于Object:
Lable1.Text=age.ToString();
类型细分:
值类型包括:简单类型、结构类型、枚举类型
引用类型包括:类类型、接口类型、委托类型、数组类型
等价类型:int、double、bool、string
简单类型:
整数类型:
有符号:sbyte、short、int、long
无符号:byte、ushort、uint、ulong
字符类型:char
实数类型:
float、double
十进制类型:
Decimal
布尔类型:
bool
逻辑类型:bool类型适于逻辑运算,一般用于程序流程控制;bool类型数据只允许取值TRUE或FALSE,不可以0或非0的整数值代替TRUE和FALSE
字符类型:char型数据用来表示通常意义上的“字符”;字符常量是用单引号括起来的单个字节;C#字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示;C#余元中还允许使用转义字符’\‘来将其后的字符转变其他的含义
转义字符
\uxxxx 1到4位十六进制数所表示的字符
\' 单引号字符
\" 双引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
字符串类型:String 是引用类型,但对字符串常量有特殊处理:“abcd1234”、@“abcd”、Pqrst"
使用数据类型要注意:引用类型与值类型是由其类型定义的,而不是由其使用决定的
运算符
算术运算符 +,-,*,/,%,++,--
关系运算符 >,<,>=,<=,==,!=
逻辑运算符 !.&,|,^,&&,||
位运算符 &,|,^,~,>>,<<
赋值运算符 =
扩展赋值运算符 +=,-=,*=,/=
字符串连接运算符 +
扩展赋值运算符
运算符 | 用法举例 | 等效的表达式 |
---|---|---|
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |
%= | a%=b | a=a%b |
&= | a&=b | a=a&b |
|= | a|=b | a=a|b |
^= | a^=b | a=a^b |
<<= | a<<=b | a=a< |
>>= | a>>=b | a=>>b |
当有不同种类的混合运算时:int→long→float→double
编程提示
类型的转换
字符串转成数值;
double.Parse(s) int.Parse(s)
数字转成字符串:
10.ToString()
""+10
使用Convert
Convert.ToInt32(textbox.1Text)
Convert.ToDouble("123.45")
Convert.ToDateTime("2009-10-01 14:00")
1、简单语句
System.Console.Writer("Hello World");
b=a>0?a:-a;
s=TextBox1.Text;
d=int.Parse(s);
2、分支语句----if
if(条件表达式)
语句块
else
语句块
if((year%4==0&&year%100!=0)||(year%400==0))
Console.WriteLine(year+"是闰年");
else
Console.WriteLine(year+"不是闰年");
3、多分支语句------switch
switch(exp)
{
case const1;
statement1;
break;
case const2;
statement2;
break;
......
case constN;
statementN;
break;
[default :
statement_default;
break;]
}
变量除了整形、枚举型,还可以用字符串
不能随便贯穿,必须有break;(除非几个case连起来,中间没有别的语句)
4、循环语句
语句在循环条件满足的情况下,反复执行特定代码
循环五要素:初始化部分、循环条件部分、循环体部分、迭代部分、“结束后处理”
s=0;
for(int i=1;i<=100;i++) s+=i;
Console.Write(s);
循环语句for
语法格式:
for(init_statement;test_exp;alter_statement)
{
body_statement
}
应用举例
int result=0;
for(int i=0;i<=100;i++)
{
result+=i;
}
System.Console.Write("result="+result);
循环语句while
语法格式:
[init_statement]
while(test_exp)
{
body_statemet;
[alter_statement;]
}
应用举例
int result=0;
int i=1;
while(i<=100)
{
result+=1;
i++;
}
System.Console.Write("result"+result);
循环语句do/while
至少执行一次
语法格式
[init_statement]
do{
body_statement;
[alter_statement;]
}while(test_exp);
应用举例
int result=0;
int i=1;
do{
result+=1;
i++;
}while(i<=100)
System.Console.Write("result="+result);
跳转语句
break语句:结束循环(相当于VB中的Exit Do,Exit For)
continue语句:进入下一次循环
goto语句:跳转到某个语句标号
try{}catch{}语句:异常的捕获
1、数组是多个相同数据的组合
数组属于引用类型
一维数组的声明方式:
int[] a1;
double []b;
Mydate []c;
C#中在声明数组的时候不能指定其长度(数组的个数)
2、数组初始化
动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行
int []a=new int[3];
a[0]=3;
a[1]=9;
a[2]=8;
MyDate []dates;
dates=new MyDate[3];
dates[0]=new MyDate(22,7,1964);
dates[1]=new MyDate(1,1,2000);
dates[2]=new MyDate(22,12,1964);
静态初始化
在定义数组的同时就为数组元素分配空间并赋值
int[] a={3,9,8};
int[] a=new int[]{3,9,8};
MyDate[] dates={
new MyDate(22,7,1964);
new MyDate(1,1,2000);
}
默认初始化
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化
3、数组元素的引用
数组元素的引用方式
index为数组元素下标,可以是整型常量或整型表达式
每个数组都有一个属性Length指明它的长度,例如:a.Length指明数组a的长度(元素个数)
4、foreach语句
foreach可以方便地处理数组、集中元素
int[] ages=new int[10];
foreach(int age in ages)
{}
foreach是只读式的遍历
5、复制数组
Array.Copy方法提供了数组元素复制功能:
//源数组
int source={1,2,3,4,5,6};
//目的数组
int[] dest={10,9,8,7,6,5,4,3,2,1};
//复制源数组中从下标0开始的source.length个元素到目的数组,从下标0的位置开始存储
Array.Copy(source,0,dest,0,source.Length);
6、多维数组
二维数组举例
int [,] a={{1,2,3},{3,4,0},{5,6.7}};
可以用a.GetLength(0),a.GetLength(1)来获得各个维度的长度
7、交错数组
C#中交错数组是数组的数组
int [][]t=new int[3][];
t[0]=new int[2];
t[1]=new int[4];
t[2]=new int[3];