C#基础知识(3)
来源:互联网 发布:淘宝申请中国制造 编辑:程序博客网 时间:2024/04/27 01:08
表达式与操作符
1.基本操作符
. C#的点操作符用于成员访问。包括命名空间访问类、类访问方法和字段
等。
System.Console.WriteLine("你好世界"); //命名空间访问类,类访问方法
int maxNum = Int32.MaxValue; //类访问属性
() 在C#中表示方法、方法调用、委托和委托调用。
int i = int32.Parse("123"); //一个参数的方法调用
System.Console.WriteLine("i={0}",i); //两个参数的方法调用
[] 在C#中用于访问元素。该操作符主要用于数组访问和索引器访问
int[] intArray = new int[32];
intArray[0] = 8; //数组访问第一个元素
++和-- 自增、自减操作符只能用于一个变量、一个属性访问或索引器,而
不能用于常量和其他表达式(如:--8、++9、(i+j)++等都是错的)
int i =8,j;
j = i++; //执行运算后 i等于9 j等于8 即先使用,后加1
i = 8;
j = i--; //执行运算后 i等于7 j等于8 即先使用,后减1
i = 8;
j = ++i; //执行运算后 i等于9 j等于9 即先加1,后使用
i = 8;
j = --i; //执行运算后 i等于7 j等于7 即先减1,后使用
int i = 1;
i++;
Console.WriteLine(i);
i = 4;
Console.WriteLine(i++);
执行结果为:
2
4
new new关键字是为引用类型(主要是类、数组、委托)在堆中开辟空间创建
对象。
object obj = new object(); //创建object类的一个实例对象
int[] intArray = new int[32]; //创建一个int类型数组
sizeof sizeof操作符返回由给定类型的变量占用的字节数,只能用来计算
值类型所占的字节数。返回值类型是int类型。只能sizeof(int)等,不能sizeof
(1)等。
typeof typeof操作符返回的是给定类型的System.Type对象即系统类名称,
只能typeof(int),返回System.Int32,不能typeof(i)等。
2.赋值操作符
简单赋值操作符 =
它将右操作数的值赋予左操作数给定的变量、属性或索引器元素。
复合赋值操作符 += -= *= /= %= &= |= ^= <<= >>=
它对两个操作数进行指定的操作,然后将结果值赋予左操作数指定的变量、
属性或索引器元素。
int i,j,k; i=j=k=8; //操作完成后,i、j、k的值都是8
int i=j=k=8; 是错误的
3.算数操作符
+ - * / % (加、减、乘、除、模(求余数))
4.一元加减操作符
+ - 相当于正负号
5.比较操作符
== != < > <= >= (等于、不等于、小于、大于、小于等于、大于等于)
6.位操作符
& | ^ ~ (与、或、异或、取补)
它们是针对二进制位进行操作,高级语言主要采用十进制来计数,汇编语言
采用二进制。C#除了支持十进制也支持十六进制(数字0-9,字母a-f表示10-15),
用0x作为十六进制数值的前缀,如:0x0c表示数值12,0xec表示数值236。十进制转
换成其他进制用除以基数求余数的方法。其他进制转换成十进制用乘以基数的幂
的方法。
& 对于布尔型 有false就为false 对于数值型的二进制位有0就为0
| 对于布尔型 有true就为true 对于数值型的二进制位有1就为1
^ 对于布尔型 有false和true才为true 对于数值型的二进制位有1和0才为1
~只能针对一个数值型的二进制位,是把该二进制的0变成1,1变成0
7.移位操作符
<< >> (左移、右移)
它们只能对数值型的二进制位移位。
x<<2 把x的二进制位向左移两位,后面用0填补
8.条件逻辑操作符
&& || ! (逻辑与、逻辑或、逻辑非)
&&与& ||与| 的区别除了&&、||只能运算布尔类型外 x&&y 只有x为true
时才运算y x||y 只有x为false时才运算y
如:求一年是不是闰年(能被400整除或能被4整除但不能被100整除)
int year = int.Parse(Console.ReadLine());
bool runnian =(year/400==0)||((year/4==0)&&(year/100!=00));
if (runnian)
Console.WriteLine("{0}是闰年",year);
else
Console.WriteLine("{0}不是闰年",year);
9.三元运算符
?: 如b?x:y b为true就运算x,得到的值就是运算结果,否则运算y,得到的
值就是运算结果
如:可以在求闰年加入以下语句
string rn = runnian?"是":"不是";
Console.WriteLine("{0}{1}闰年",year,rn);
用冒泡排序法排序
//首先把要输入的数放进一个数组
int[] intArray = new int[10];
for (int i=0;i<10;i++)
{intArray[i] = int.Parse(Console.ReadLine());}
//再利用冒泡排序法排序
//两层循环(第一层的变量与数组没关系,两层都是有几个数就循环几次)
for (int x=0;x<=intArray.Length-1;x++)
//第二层循环与数组有关,要注意数组元素下表从0开始,这样元素个数就是
//Length-1个了
{for (int y=0;y<intArray.Length-1;y++)
{if (intArray[y]>intArray[y+1])
{
int temp = intArray[y];
intArray[y] = intArray[y+1];
intArray[y+1] = temp;
}}}
//最后输出数组中的元素
for (int z=0;z<10;z++)
{
Console.WriteLine(intArray[z]);
}
10.提升操作符
提升操作符外表和前面的简单操作符、算数操作符、位操作符、比较操作符
一样,但提升操作符的操作数可以是可空类型(值类型可以隐式转换为可空类型
,可空类型必须显式转换为值类型)。
如: int i=123;int? j=i;int? k=null;
int? ni1=j++; int ni2=(int)ni1; int? ni3=k+i;
ni1为 123 ni2为 123 ni3为 null
11.空合并操作符
?? T c=a??b 要求a为可空类型或引用类型 只有a为空时运算结果才为b
如: int? a1=123;int? a2=null;int b1=123;int? b2=123;
int c1=(int)(a1??b2); int c2=a2??b1; int?c3=a2??a2;
c1为 123 c2为 123 c3为 null
- C#基础知识(3)
- c#基础知识3:事件
- C#基础知识
- c# 基础知识
- c#基础知识
- C#基础知识
- c#基础知识
- C# 基础知识
- C#基础知识
- C# 基础知识
- c# 基础知识
- C#基础知识
- C#基础知识
- C#基础知识
- C# 基础知识
- C#基础知识
- c#基础知识
- C#基础知识
- jQuery技巧
- VS2005(c#)项目调试问题解决方案集锦
- matlab 系统辨识工具箱三分钟入手
- 值类型使用ReferenceEquals方法
- 12.6 JAVA学习 输入输出流
- C#基础知识(3)
- linux的标准输入输出和重定向
- 基于lucene.net的网站标签系统设计
- 捕捉大师snagit的使用方法
- 一位研究生导师心目中理想的论文:早晚要写论文的朋友们一定要看哦
- IP地址的分类
- 接外包项目,如何远离垃圾客户?
- Command 命令模式
- Command 命令模式