A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 jerviscui 于 2013-6-23 20:40 编辑

题外话:上学的时候学过C、Java,C++自己有学过一部分,AS3语法也看过一些。就语法上来说相差的不太多,细节上写法不同。

本篇帖子不讨论语言应用方向,仅仅罗列一下个人学习C#基础知识过程中,语法方面C到C#的变化。有错误的地方还请大家多多指。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-




  • C#的预定义类型: string、decimal


string字符串类型,是引用类型,在面向对象的语言中都存在的,使用上没有什么变化。

decimal属于浮点类型,有效范围±1.0x10-28 7.9x1028 精度为28~29位;就是说decimal变量的有效数值都在精度范围内,是完全可信的值。所以decimal多用于存储金钱数据。相对于同属于浮点类型的double,有效范围±5.0 × 10 −324 ~±1.7 × 10308精度为15~16位,由于精度的不同所以double和decimal是不能够进行自动类型转换的。并且,C#中默认小数是double类型,所以decimal变量初始化赋值时候需要常数后加M/m标志。


  • C#中变量命名规则


1.以“字母”、下划线或者@开头,

2.后跟任意“字母”、数字、下划线。

一般的命名规范成员变量使用Camel命名法,类名和方法名使用Pascal命名法。



  • 第一个输出语句


所有的变成语言学习时,都会有这么一个例程——Hello World!  同样,C#中通过这样一条输出语句 Console.WriteLine("Hello World!"); 在控制台中输出“Hello World”字符串。在这个例程中你完全不需要知道该语句是什么意思,是如何是实现的,你只需要知道它能够在标准输出设备上输出内容就足够了。

不同于C语言的是,C#的输出方法Console.WriteLine()中不需要使用格式说明符,只需要通过占位符来调用参数列表中的元素,如下代码:

Console.WriteLine("{0} {1} {2}", para1, para2, para3);         其中0、1、2 表示参数列表中元素的下标,{0}代表了参数列表中第一个元素即para1。

Console.WriteLine("我叫" + name, "今年" + age;);      会输出什么呢?答案是逗号以后的内容("今年" + age)是作为参数存在的,并不会被输出。



  • 转义字符


C#中转义字符同样有\n、\t、\b等等,但是相较于C多了一个@转义字符。

@转义字符的用处有两点:1.使其后字符串中‘\’不再做转义字符使用

                                          2.可以在字符串中使用回车换行,并且输出时会按照当前代码中的格式输出

需要注意的是:有@的情况下,要在字符串中输出双引号,则需要用两个连续的双引号来输出。  Console.WriteLine(@"ABC ""d"" EFG");输出:ABC "d" EFG



  • 字符串转整形


Convert.ToInt32(string s) 将数字字符串转为整形,转换失败会抛出异常,可以用try-catch捕获。

try{} catch{}异常捕获:将可能发生异常的代码写在try中,如果执行过程中出现错误立即进入catch中执行,出错处以后的代码将不再执行;如果没有错误则跳过catch中代码段。



  • 运算符优先级


(高->低)

【单目运算符】》【逻辑非!】》【算数运算符】》【移位运算符<<、>>】 》【关系运算符】》【位运算符&、|、^】》【&&、||】》【赋值运算符】



  • switch-case


与C中不同的是,case的标签可以是字符串类型。如下代码:

string a = "a";

switch (a) {
                case "a": Console.WriteLine(a); break;
                case "b": break;

}



  • 枚举 enmu



enum Gerden {男, 女}; 因为C#支持字符集使“字母”不仅仅限于26个英文字母,也可以用汉字作为变量名称。这里的“男“和”女”实际为枚举类型成员变量名。实际上枚举类型成员变量存储的仍然是int类型值,默认从零开始,每个元素递增1。

Console.WriteLine(Gerden.男);  当输出枚举成员变量时,输出的是成员变量名,即输出:男

Console.WriteLine((int)Gerden.女);  可以通过强制类型转换输出成员变量int值,输出:1 (Gerden.男输出0)

*字符串转换为枚举类型*

(自定义枚举类型)(Enum.Parse(typeof(自定义枚举类型),"待转换字符串"));        可用于输入字符串与已有枚举类型成员比较。



  • out 与 ref 关键字


out:在方法声明中对形参类型前面加out关键字,表明这个参数用于传出值。并且在方法调用处,对应的实参也需要out关键字修饰。需要注意的是在函数声明中传出参数使用前必须赋值。

一个典型的out传出值函数,定义如下:

public static bool TryParse(string s, out int result);   该方法用于将字符串s转换成Int32类型,result为传出值参数。该方法用于将字符串s转换成Int32类型,成功返回true,失败返回false。与Conver.ToInt32()不同的是转换失败不会产生异常。

ref:同样是使参数用于传出值。语法的使用格式上与out相同,区别是ref实际上是传递实参变量的地址给形参。就是通常所说的参数传值与传址的区别。


-The End-

© Jervis




评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报

...  许庭洲也不对啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马