考研的事情总算是告一段落了,总的来说结局还算圆满。所以我也算是能有这么一大段时间来好好学习一门语言。大学期间,真的浪费了不知道多少时间,作为计算机系的学生,目前也仅仅是对各种编程语言略懂皮毛而已,之前一直用Java语言,也对java ee方面的知识有一些涉猎,但是导师要求我把C#能够学会,所以不得不放弃java,希望能够坚持下去把C#真正的学会。
其实无论C#或者是JAVA又或者是CPP,基本是一通百通的东西,只要真正熟练掌握了任何一种语言,那转到其他就是比较简单的了。考研期间被某微软专家在微博上点名批评过死记硬背,不重实践,其实那也是无奈之举。如今得闲,仔细研读其博客,对我真的帮助很大,现在我更是遵循他的建议,买了一些他列的计算机方面的书籍,准备好好实行我的书单计划。对于他所提到的Github我也很感兴趣,希望能尽快把C#上手,去Github上找些开源项目多多学习。
学习任何一门编程语言,买书无疑是令人头疼的事情,我比不得那些聪明的人,不能单单通过互联网就能够学习。所以首先,我就在Amazon.cn上搜索C#关键字,出现了很多书籍。其中《Beginning Visual C# 2010》这本书被提到最多,不过看后面评论,似乎翻译水平欠缺,故下载了一本中文版PDF翻阅了一番,有些翻译的确十分的晦涩难懂,由于本人英语水平尚可,所以就准备使用英文版的书籍,对照中文版的PDF学习。另外我还买了一本《Visual C# 2010从入门到精通 Step by Step》 据说翻译水平较高,不过暂时还没到手,故先不做评论。
下面总结一下第一天学习的一些内容,第一次看英文原版的教材,还是有些吃力,遇到不懂得单词,我都标记好,存到了Shanbay.com,希望通过这本书,我编程方面的专业词汇能得到拓展。
一开始的内容基本和JAVA语言没什么差异,不做赘述。
首先,数组方面,C#有之间的数组遍历语言foreach 使用范例如下:
foreach(int val in vals)
{
Console.WriteLine(val);
}
对于多重数组,就要多次使用foreach语句
foreach(int[] divisorsOfInt in divisors1To10 )
{
foreach(int divisor in divisorOfInt)
{
Console.WriteLine(divisor);
}
}
2.Function C#中引用参数的使用与Java以及CPP稍有不同,将&改为了关键字ref或out。
ref关键字与out关键字的不同点:
ref修饰的变量不能用const修饰,并且一定要赋初值。
out修饰的变量不需要赋初值,即使有初值也会在函数执行时丢失。
***ref关键字和out关键字都要在函数调用中使用***
3.C#中Function的参数可以是一个参数 数组,使用params关键字,示例如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static int SumVal(params int[] vals)
{
int sum = 0;
foreach (int val in vals)
{
sum += val;
}
return sum;
}
static void Main(string[] args)
{
int sum = SumVal(1,3,5,6,7);
Console.WriteLine("summed results are: {0}",sum);
Console.ReadKey();
}
}
}
4.全局变量 在类中定义,必须是static或者const类型。当有局部变量和全局变量同名的时候 全局变量必须使用 类名.变量名的形式,否则将被局部变量所覆盖。
5.Delegate 委托 (此处暂时还不是很懂,看到后面再来具体学习)
建立委托
例: delegate double ProcessDelegate(double param1, double param2);
static double Multiply(double param1, double param2)
{
return param1 * param2;
}
static double Divide(double param1, double param2)
{
return param1 / param2;
}
建立委托类实例,并指向要调用的方法
方式一:ProcessDelegate process = new ProcessDelegate(Multiply);
方式二:ProcessDelegate process = Multiply;