C#编程基础学习
C#课程笔记。
第一课
。Net的技术
Windows控制台程序
1. WinFrom程序:像我们想在常用的QQ等窗口程序。
3. ASP.Net :开发网站程序。如WebFrom开发
4 嵌入式开发 也可以用。Net来开发。
5.WCF:通信程序如QQ。WF 工作流。
第二课:
控制台程序
Console.WriteLine("请输入一个整数:\n");//用于打印一行字符串相当于printf();
string s = Console.ReadLine();//相当于scanf();用于接收字符串。
int i = Convert.ToInt32(s);
int i1 = i + 10;
Console.WriteLine("{0}",i1);
string s1 = i.ToString(); //string s1 = Convert.ToString(i);
Console.WriteLine(s1);
Console.ReadKey();//这行代码是为了防止程
第三课:
讲到C#的变量的命名规则,跟C没多大差别。基本一样。
第四课:
C#中 加减乘除运算规则 跟C没有多大区别。不过C#的加法可以运用到 字符串中去。
例如:string s=”Hello”; string s1=”Wrold”; string s2=s + s1; 所以string s2=”HelloWrold”;
String s =s1 + s2 + “hahah ”;
还有 i++;是自加一。与C无异。
第五课:讲了赋值。
i=3; j=5;
temp=i; i=j; j=tmep;
第六课:
布尔运算
相等判断:== 不要和=混淆。
不等号 : !=
bool b=true; 取反 !b;
i=3; j=4; 并且 &&。 或者||。 在C#中,其实单& 单|也可以是并且,或者运算符。但是他们不存在短路运算的功能。而&& || 是有短路运算功能的。效率比较高。所以在使用中一般都是用双&& 双||。
(i>=3)&&(j<4) Flase.
第七课:
三元运算:
If 语句:格式跟C语言一样。只是输入输出格式不同而已
Console.WriteLine("please input your age:");
int age = Convert.ToInt32(Console.ReadLine());
if (age > 18)
{
Console.WriteLine("promit to see the film");
}
else
{
Console.WriteLine("forbit to see the film");
}。
If ()
{}
else if()
{}
else
{}
在C#中,字符串是否相等可直接用== 判断其真假。如果为真,则字符串相等。
例如:
string ps=Console.ReadLine();
if (ps=="888888")
{
Console.WriteLine("right");
}
else
{
Console.WriteLine("flase");
}
第八课:
这节课是作业的讲评,由于作业比较简单,所以就略过了。
第九课:讲到了switch的用法。他跟C语言的区别是:case后面一定要用到break。不可以省略。即是执行了一个case块,之后就必须退出switch。
第十课:
循环语句:while do while。
第十一课:
循环的中断
用break continue。
用while continue 计算1~100之间除了7的倍数外的其他数的和。
用while 和break 实现输入用户名和密码,不正确就不断要求输入。
第十二课:
for 循环语句
for(int i=0;i<10;i++)
{
if(i==3)
continue;
Console.WriteLine(“i={0}”,i);
}
Continue;放在for循环中,不用担心i++放在什么位置,i++一定会被执行的。
这个比while更好用。
当i==3成立时,continue语句的作用是跳过continue后面的语句不执行,直接跳到i++语句。
即是跳到这个循环圈的下一步执行。
第十三课:
类型转换:
分为隐式转换和显式转换。
当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换。如果当目标类型不一定能满足源类型转换过去的要求的话就需要显式转换。
显示byte int 等类型的变量的取值范围可用 byte.MinValue~byte.MaxValue.
Byte 的取值范围0~255. 而int的范围要大很多。
所以,当byte b; int i; 如果 i=b; 是隐式转换,因为i肯定包含b的取值。
如果 b=i; 这样是编译不通过的。需要一个显式转换。b=(byte)i;
类型转换Cast是在内存级别上的转换。内存中的数据没有变化,只是观看的视角不同而已。
所以,只有在内存存储上存在交集的类型才能进行cast转换。例如数据类型int long 等。都是数。而sting int之间是不能进行转换的。
Convert
不再是内存级别上的转换。
字符串转换成数据,数据转换成字符串。
String s=”
Int i=Convert.ToInt32(s);
或者
Int i=20;
String s=Convert.ToString(i);
第十四课
枚举
Enum Dir {south ,north,east,west}
Dir d=Dir.south.
十五课:
数组:
Int [] nums={5,3,8}; //声明并初始化nuns数组。
String[] names={“tom”,”jerry”,”jam”};
int[] nums1= new int[5]; //nums1这个数组有5个元素。
int[] nums1= new int[5]{1,2,3,4,6};也可以这样。但是很少有人这么变态的声明。
在看看这个函数:新的循环函数
int[] nums = {5,3,8,2,1};
foreach(int n in nums) //遍历数组中的每一个数并赋给n
{
Console.WriteLine("{0}",n);
}
十六课:函数
函数的功能是一次编写,多次重复调用。简化代码。
Static void PrintName() //void指无返回值。
{
Console.WriteLine(“Please input your name:”);
}
十七课:
函数的参数:向函数内部传值,动态改变函数内部需要的值。
参数数组:
看看这个函数:跟上一个有什么区别啊?
区别就在于函数参数中多一个params。动态参数,因为此参数的个数是不确定的。所以C#将不确定的参数打包到一个数组中来。
可变参数的前面可以有其他固定参数,而后面不能再有其他参数。而且只能有一个params参数。
参数默认值。。Net4.0才有。
十八课:函数的重载:
在C#中,函数名可以相同吗?答案是可以。不过是有条件的。函数的参数类型或者参数个数必须不同才可以。
十九课:字符串处理:
看看下面的函数吧:
看看下面函数:
函数Split的使用:
函数Replace的使用:
函数Substring 的功能:提取某个字符串中的指定字串。
这个函数有两个重载的函数,分别是1个和2个参数的。
函数Contains的功能:判断一个字符串中是否含有某个字串,返回布尔值。
函数EndsWith()的功能,判断字符串是否为某个字串结尾。
同理,StartsWith()的功能是判断字符串是否为某个字串开头。
函数Indexof()的功能,返回给定字串在主串中的位置,从第几个字符开始。
函数LastIndexof()的功能,返回给定字串在主串中的最后出现位置。
函数PadLift() 和PadRight()的功能如下:
二十课:练习讲解:
函数ref 参数,引用传递,在函数内部改变变量的值。第一个被调函数不会改变主函数内的变量的值,值传递。而第二个是引用传递。
函数参数out 在函数内部给变量赋初值。
二十一课:变量的作用于。
二十二:调试:
继续 ,断点,条件断点,命中次数断点。