C#复习之一

1, 托管执行和公共语言基础结构

    处理器不能直接解释一个程序集。程序集采用的是另一种语言,即公共中间语言(Common Intermediate Language, CIL),或者简称为中间语言(IL)。

    C#编译器只是将C#源代码文件转换成这种中间语言。为了将CIL代码转换成处理器能够理解的机器码,还要执行一个额外的步骤(该步骤通常是在执行时完成的)。这个步骤涉及C#程序执行中的一个重要元素:VES(Virtual Execution System, 虚拟执行系统)。VES偶尔也被称为运行时,它根据需要来编译CIL代码,这个过程称为即时编译或者JIT编译(Just-In-Time Compilation)。

===================================================================================================================================

2, C#和.NET版本

截止目前为止,微软对.NET Framework进行了5次大的升级,但C#编译器只进行了4次大的升级。 

         C#1.0和.NET Framework 1.0/1.1 (Visual Studio 2002/ 2003)

         C#2.0和.NET Framework 2.0 (Visual Studio 2005)

         .NET Framework 

         C# 3.0 和 .NET Framework 3.5 (Visual Studio 2008)

         C# 4.0 和 .NET Framework 3.5 (Visual Studio 2010)

===================================================================================================================================

3, 数据类型

8种整数类型

                类型                       大小                       BCL名称     

                sbyte                                8 bit                                 System.SByte

                byte                                  8 bit                                 System.Byte

                short                                16 bit                               System.Int16

                ushort                              16 bit                               System.UInt16

                int                                     32 bit                               System.Int32

                uint                                   32 bit                               System.UInt32

                long                                 64 bit                                System.Int64

                ulong                               64 bit                                System.UInt64

注: C#的所有基本类型都有一个短名称和一个完整名称。完整名称对应于BCL种命名的类型。从编译器的角度看,两种名称是完全一样的,最终都将生成同样的代码。

 

2种浮点数

                类型                        大小                        BCL名称              有效数字

                 float                                   32 bit                              System.Single                     7  

                 double                              64 bit                              System.Double                   15 - 16

注:浮点数的精度是可变的。如读取本来是0.1的一个浮点数,那么可能很容易读取成0.099 999 999 999 999 999或0.100 000 000 000 000 000 1或者其他非常接近0.1的一个数

 

1种用于金融计算的十进制浮点类型

            类型                        大小                        BCL名称              有效数字                

                decimal                             128 bit                              System.Decimal                28 - 29

注:与浮点数不同,decimal类型保证范围内的所有十进制数都是完全准确的。所以,对于decimal类型来说,0.1就是0.1,而不是一个近似值

 

1种布尔类型

            类型                        取值                        BCL名称              

                bool                                   true / false                         System.Boolean

1种字符类型

                char                16 bit                    System.Char         

其他的转义字符,常用的记住就好了,也没啥可复习的。 

=================================================================================================================================

string类: 

string的静态方法:

    static string Format(string format, ...);

    static string Concat(string str0, string str1);

    static int Compare(string str0, string str1);

string的实例方法:

    bool StartsWith(string value);

    bool EndsWith(string value);

    string ToLower();

    string ToUpper();

    string Trim();

    string Trim(...);

    string TrimEnd();

    string TrimStart();

    string Replace(string oldValue, string newValue);

 

System.Environment.NewLine;

System.Console.WriteLine("Hello World!");  ===  System.Console.Write("Hello World!" + System.Environment.NewLine);

 

string的Length属性

 

字符串是不可变的(immutable)


==================================================================================================================================

 

StringBuilder类:System.Text.StringBuilder

==================================================================================================================================

null和void

 

隐式类型的局部变量(implicitly typed local variable),关键字var。

C#3.0添加var的目的是支持匿名类型(anonymous type),例如:

var patent1 = new { Title="Bifocals", YearOfPublication="1987"};

Console.WriteLine("{0},{1}",patent1.Title, patent1.YearOfPublication);

 

值类型和引用类型:

 

可空类型

 

使用System.Convert进行类型转换:

System.Convert只支持预定义数量的类型,而且是不可扩展的。

System.Convert.ToDouble();

System.Convert.ToBoolean();

 

TryParse():

从C#2.0(.NET 2.0)开始,所有基本数值类型都包含一个静态的TryParse()方法。

{

    double number;

    string input;

    input = Console.ReadLine();

    if( double.TryParse(input, outnumber ) {

        //

    }

}

 

二维数组:int[,] arr;

交错数组:int[][] arr;  // 交错数组要求对数组中的数组进行实例化。

int[][] cells = {

    new int[]{1, 2, 3},

    new int[]{1, 2},

    new int[]{1, 2, 3, 4}

};

 

System.Array.Sort();

System.Array.BinarySearch(); //在使用BinarySearch之前,有必要对数组进行排序。

System.Array.Reverse();

System.Array.Clear(); // 该方法不删除数组元素,而且不将长度设为0,。数组大小是固定的,不能修改。所以,Clear()方法将数组中的每一个元素设为其默认值(false, 0, null)。

 

数组的实例方法:

GetLength()

Rank();  // 获取数组的维数

Clne()

 

字符串作为数组使用:

string palindrome = Console.ReadLine();

char[] temp = palindrome.ToCharArray();

System.Array.Reverse(temp);

================================================================================================================================

运算符和控制流

线程安全的递增和递减:P68

对于简单的递增和递减运算,一个代价没有那么高的替代方案是使用由System.Threading.Interlocked类提供的线程安全方法Increment()和Decrement()方法。这两个方法依赖于处理器的功能来执行快速的、线程安全的递增和递减运算。

 

空结合运算符:

从C#2.0开始,执行空值检查的条件运算符有了一个简化语法,称为空结合运算符(null coalescing operator), 它检查一个表达式是否为null,如果为null,就返回第二个表达式的值。例如: expression1?? expression2;

 

C#预处理指令:控制流语句中的条件表达式是在运行时求职的,而C#预处理器指令是在编译时调用的。P99

#if、 #elif、#else、#endif、#define、#undef、#error、#warning、#pragma、#line、#region、#endregion

 

=================================================================================================================================

方法和参数

编译器认为所有的命名空间都在一个级别上。例如:System.Collections.Generics似乎被包含在System.Collections命名空间内部,但对于编译器来说,它们是两个完全独立的、完全不同的命名空间。

 

 

 

 

 

 

 

 

 

===================================================================================================================================

 

 

 

 

 

 

 

 

 有些乱和不完整,有时间会整理,并补充

 

 

 

 

 

 


                                                                                                                                                                                         ---------参考《Essential C# 4.0》

               

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值