-
目录
-
运算符
一、运算符划分
1、按操作数划分
1)一元运算符
< 1 >数学运算符
< 2 >先赋值后运算:
a++
a--
< 3 >先运算后赋值:
++a
--a
例如:一元运算符
//a++和++a
int v1 = 0;
int v2 = 0;
v1 = ++v2;
//v2=v2+1; =>v2=1
//v1=v2; =>v1=1
Console.WriteLine("v1=" + v1);
Console.WriteLine("v2=" + v2);
int v3 = 0;
int v4 = 0;
v3 = v4 ++;
//v3=v4; =>v3=0
//v4=v4+1; =>v4=1
Console.WriteLine("v3=" + v3);
Console.WriteLine("v4=" + v4);
2)二元运算符
赋值运算符:+-*/%
3)三元运算符
< 1 >a?b:c
若a=true返回b
若a=false返回c
< 2 >条件运算符(?:)根据布尔型表达式的值返回两个值中的一个。如果条件为 true,则计算第一个表达式并以它的计算结果为准;如果为 false,则计算第二个表达式并以它的计算结果为准。
例如:三元运算符
int a3 = 10;
int b3 = 20;
int c3 = (a3>b3)?a3:b3;
//第一个操作数为真,则返回第二个操作数
//第一个操作数为假,则返回第三个操作数
Console.WriteLine(c3);//答案:c3=20
2、按照作用划分
1) 算术运算符
2)赋值运算符
3)关系运算符:
==等于
>大于
<小于
>=大于等于
<=小于等于
!=不等于
4)逻辑运算符
5)移位运算符
6)其他特殊运算符
7)自增运算符和自减运算符
二、其他特殊运算符
1、is 运算符
is 运算符用于检查变量是否为指定的类型。
如果是,返回真
否则,返回假。
2、as
3、typeof
typeof 运算符用于获得系统原型对象的类型,也就是 Type 对象。Type 类包含关于值类型和引用类型的信息。
typeof 运算符可以在 C#语言中各种位置使用,以找出关于引用类型和值类型的信息。
4、sizeof
5、new 运算符
new 运算符用于创建一个新的类型实例,它有以下 3 种形式。
对象创建表达式,用于创建一个类类型或值类型的实例。
数组创建表达式,用于创建一个数组类型实例。
代表创建表达式,用于创建一个新的代表类型实例。
三、运算符的优先级
1、优先级等级
第一级:++、--(做为前缀)、()、+、-(做为单元运算符时)、!、~。
第二级:*、/、%、+、-。
第三级:<<、>>位移运算。
第四级:<、>、<=、>=、==、!=。(逻辑比较)
第五级:&、^、|、&&、||。
与(&&):a>2&&a>5
或(||):A>5||A<2
非(!):A=true;!A
第六级:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=。
例如:a*=b;
a=a*b;
第七级:++、--(做为后缀)。
2、总结
括号可以重写优先级,有括号先算括号里边的
++、--作为前缀 ,优先级最高
*、/、%
+、-
=、+=、-=
++、--作为后缀 ,优先级最低
-
表达式
变量+运算符就组成了表达式
-
类型转换
一、隐式转换
1、隐式转换就是不需要声明就能进行的转换
2、小范围数值转换成大范围数值
例如:类型转换:隐式转换和显示转换
float f1 = 10;
double d1 = 200;
d1 = f1;//隐式转换
f1 = (float)d1;//需要显示转换
Console.WriteLine(f1);
二、显示转换
1、显式转换也可以称为强制转换,需要在代码中明确地声明要转换的类型。
如果要在不存在隐式转换的类型之间进行转换,就需要使用显式转换
2、大范围数值转换成小范围数据,需要强制转换
例如://显示转换的例子
double a1 = 10.0f;
float a2 = (float)a1;
Console.WriteLine(a2);
三、方法
1、字符串=》数字:
1)类型.Parse(需要转换的值)
例如:类型转换 类型.Parse()
//字符串转数字
string str = "123";
int B = 456;
string C = str + B;
Console.WriteLine(C);//123456
int D = Int32.Parse(str) + B;//479显示转换,int型
double D1=double .Parse (str);//double型
Console.WriteLine(D);
2)Convert.ToInt32("123");
例如:类型转换 Convert.ToInt32()
int A1 = Convert.ToInt32("123");
double D2 = Convert.ToDouble("123");
2、数字=》字符串:数字.ToString()
例如:类型转换 数字.ToString()
//数字转字符串
int aaa = 12345;
string str3 = aaa.ToString();
str3 = aaa + "";
四、装箱和拆箱
1、将值类型转换为引用类型的过程叫做装箱,
相反,将引用类型转换为值类型的过程叫做拆箱
例如:装箱和拆箱(白盒和黑盒)
int a10 = 10;
double d10 = 10.00;
//两种类型数据运算时,结果自动转成大范围类型的数据
//int a11 = a10 + d10;//错误
//double a12 = a10 + d10;//对的
//装箱
object obj1 = a10;
object obj2 = d10;
//拆箱
a10 = (int)obj1;
d10 = (double)obj2;
2、白盒和黑盒
-
流程控制语句
一、选择结构
1、if else语句
1) if语句
例如:if (a > b) //简写,只能执行一条语句;再写会报错
Console.WriteLine("A>B;");
2 )if else语句
例如://if else
int a = 30;
int b = 30;
if(a>b)
{
Console.WriteLine("A>B;");
}
else
{
Console.WriteLine("A<B;");
}
3) if嵌套语句
2、switch case语句
1) switch case
2 )switch case defult
例如://switch case default
int a = 10;
switch (a)
{
case 0:
a = a + 1;
break;//跳出switch语句
case 10:
a = a - 1;
break;
case 11:
case 12:
case 13:
a = a - 12;
break;
default://case语句都不成立时执行
a = a - 2;
break;
}
二、循环结构
1、while语句
例如://while
float a = 1;
float sum = 1;
while (a < 100)
{
sum = sum + a/(a+1);
a++;
}
Console.WriteLine(sum);
//计算1+2+3+...+100的和
float a = 1;
float sum = 0;
while (a<101)
{
sum = sum + a;
a++;
}
Console.WriteLine(sum);
2、do while语句
例如://do while
int a = 0;
do
{
Console.WriteLine(a);
} while (a > 100);//必定执行一次
3、for 语句
例如://for
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i);
}
4、foreach语句
-
访问修饰符
一、内容
分类
1.public:公有的 所有的类都可以访问
2.private:私有的 当前类内部可访问
3.protected:受保护的 当前类以及继承他的子类可访问
4.internal:内部的 只限于本项目内访问,其他的不能访问。
5.protected internal:内部保护访问 只能是本项目内部或子类访问 其他类不能访问
二、使用范围
可以用在哪些地方
1)类
2)方法
3)变量
-
类
一、定义
1、类是一种数据结构,它可以封装数据成员、函数成员和其他的类
2、类是创建对象的模板。C#中所有的语句都必须位于类内
3、C#支持自定义类,使用 C#编程就是编写自己的类来描述实际需要解决的问题
二、类的定义语句
[类修饰符] class [类名] [基类或接口]
{
[类体]
}
例如://类
class Man
{
public string name;
private string age;
}
class Woman
{
//Man zhangsan=new Man();//new是实例化一个对象
void Rand()
{
int a = Rand2();
Rand3(10,20);
}
int Rand2()
{
return 10;
}
void Rand3(int a1,int a2)//int是限制a1,a2的参数类型
{
int sum = a1 + a2;
}
}