最近在看传智播客的.NET培训视频,整体上来讲其基础部分和C语言差不多。针对在观看的过程中我认为的一些区别和过去不曾注意到的地方在此整理一下,以便日后的回顾。首先我们从变量开始谈起,在C#中变量的基本类型和C中是差不多的。但是有些地方在赋值的时候需要注意:例如float类型在赋值时需要在数值部分加上f后缀:float pi = 3.14f ,另外C#中的数值类型比C中多了一个类型即:decimal,decimal的赋值同float,需在其数值后面加上m后缀如:decimal money = 3050.5m。如果不加后缀,编译器将报错,因为不加后缀编译器会将浮点型数据默认为double类型,这与声明的类型不符;decimal一般用在财务和金钱的计算行,它比double类型精度要高,但是它表示的范围没有double大。C#中的IO格式暂且就知道如下几种:Console.Write(sthring),Console.WriteLine(string),这两种的区别是后者输出后会换行,前者不换行。输入格式:Console.ReadLine(),此语句功能是从屏幕接收字符串。
4、分支结构:
(注:参考MSDN和百度文库)
在C#中类型转换分为显示转换和隐式转换。
1、隐式转换:一般是低类型向高类型转化,能够保证值不发生变化。
从 float 到 double;
从 long 到 float、double 或 decimal;
从 ulong 到 float、double 或 decimal;
从 int 到 long、float、double 或 decimal;
从 short 到 int、long、float、double 或 decimal;
从 uint 到 long、ulong、float、double 或 decimal;
从 sbyte 到 short、int、long、float、double 或 decimal;
从 ushort 到 int、uint、long、ulong、float、double 或 decimal;
从 char 到 ushort、int、uint、long、ulong、float、double 或 decimal;
从 byte 到 short、ushort、int、uint、long、ulong、float double 或 decimal;
不存在向 char 类型的隐式转换,因此其它整型的值不会自动转换为 char 类型。浮点型不能隐式地转化为decimal
2 、显示转换:也称强制类型转换,不能保证数据的正确性。(任何数值类型都可以转换成字符串类型)
(1)使用System.Convert类 将一个基本数据类型转换为另一个基本数据类型。
(2)使用Parse方法 大部份预定义值类型都有这个静态方法,用来将相应的文本转化为相应的值类型。
(3) (type)(表达式) 其它转换用运算符其它转换用运算符其它转换用运算符其它转换用运算符
(4) as 运算符用于执行引用类型的显式类型转换。 如果要转换的类型与指定类型兼容,转换就会成功;如果类型不兼容, 则返回null。
格式: 表达式as 类型
as 运算符类似于类型转换,所不同的是,当转换失败时,as 运算符将返回null,而不是引发异常。示例:object o1=”SomeString”;object o2=5;string s1=o1 as string; //类型兼容 s1=”SomeString”string s2=o2 as string; //s2=null is is
(5)is运算符用于检查对象的类型是否与给定类型兼容(对象是该类型,或是派生于该类型)。
格式:表达式 is 类型
示例:int i=10;if ( i is object) //true{}
(6) sizeof 运算符用于获得值类型的大小(以字节为单位)。sizeof(type) 运算符仅适用于值类型,而不适用于引用类型。 sizeof 运算符仅可用于 unsafe 模式。
示例:unsafe{Console.WriteLine(“{0}”,sizeof(int));}
3、字符转移,说明如下表:
字符或序列 | 说明 |
---|---|
以下字符之外的所有字符: . $ ^ { [ ( | ) * + ? \ | 这些字符在正则表达式中没有特殊含义;它们与自身匹配。 |
\a | 与报警 (bell) 符 \u0007 匹配。 |
\b | 在 [character_group] 字符类中,与退格键 \u0008 匹配。 (参见 字符类。) 在字符类之外, \b 是一个与单词边界匹配的定位点。 (参见 正则表达式中的定位点。) |
\t | 与制表符 \u0009 匹配。 |
\r | 与回车符 \u000D 匹配。 请注意 \r 与换行符 \n 不是等效的。 |
\v | 与垂直制表符 \u000B 匹配。 |
\f | 与换页符 \u000C 匹配。 |
\n | 与换行符 \u000A 匹配。 |
\e | 与转义符 \u001B 匹配。 |
\ nnn | 与 ASCII 字符匹配,其中 nnn最多三个数字组成,表示八进制符号代码的。 例如,\040 表示空格字符。 但是 如果此构造只有一个数字(例如,\2)被解释为反向引用,或如果它对应于捕获组的编号,则它被解释为反向引用。 (参见 反向引用构造。) |
\x nn | 与 ASCII 字符匹配,其中 nn 是两位数字的十六进制码位。 |
\c X | 与 ASCII 控制字符匹配,其中 X 是控制字符的字母。 例如,\cC 是 CTRL-C。 |
\u nnnn | 与值为 nnnn 十六进制的一个 UTF-16 码位单元。
说明
.NET Framework 不支持用于指定 Unicode 的 Perl 5 字符转义。Perl 5 字符转义的
格式是 \x{####…},其中 ####… 是十六进制数字的序列。请改用 \unnnn。 |
\ | 在后面带有不识别为转义符的字符时,与该字符匹配。 例如,\* 匹配星号 (*) 并与 \x2A 相同。 |
(1)单分支
语法格式 :if(条件表达式)
{
执行语句;
}
(2)双分支
语法格式: if(条件表达式){执行语句;}else{执行语句;}(3)多分支(1)语法格式:if(条件表达式)
{执行语句;}elseif(条件表达式){执行语句;}…………else{执行语句;}
(2)语法格式:switch(表达式)
{
case 常量表达式:语句1;case 常量表达式:语句2;……default:语句n;
}
(注:参考MSDN和百度文库)