传智播客 传智播客.NET视频学习课件

传智播客 传智播客.NET视频学习课件
访问.NET网站了解更多课程详情
http://net.itcast.cn
(小提示:为什么本书中超链接打不开?)
此套课件是伴随传智播客.net实况教学视频 (小提示:为什么本书中超链接打不开?)
的上课课件,作为传智播客.net公开课的一部分,免费提供给广大.net爱好者,您可以
自由分享本套课件,但禁止把他用于任何盈利性质的销售行为。否则我们将采取法律手
段来维护我们的正当权益。课件的知识产权归属传智播客。谢谢您的支持与理解!
观看须知 观看须知
1.Pdf是什么?我怎么看不了?
pdf是一种电子书格式,本套课件需要安装了pdf的软件才可以观看。推荐
"Foxitreader"(资源里有安装软件,直接安装就可以。已经用卡巴斯基
2010杀毒,请放心安装)
2.在观看过程点击链接报安全提示?没法打开电子书中的链接?
A用FoxitReader观看解决办法:
请找到软件中工具----选项-----左侧信任管理器---右边“启用安全阅读模
式”去掉“钩”即可。
B用AdobeReader观看解决办法:
一般直接点“允许”就可以了
3.这个资源是什么?
这是传智播客.NET 2010年培训班现场教学所用的课件,是货真价实的现
场授课内容。
4. 4.我如何下载传智播客.NET教学视频?
目前您可以通过3种方式,都是完全免费的!(小提示:为什么本书中超链接打不开?)
电骡(verycd):http://www.verycd.com/topics/2857178/ (推荐)
传智播客.net官方网站下载:http://net.itcast.cn/ViewArticle-103.aspx
如鹏网.net教学专区:http://www.rupeng.com/forum/forum-54-1.html
5.我想了解一下.net精品就业班的情况?如何预约报名?
请您访问传智播客.NET官方网站(http://net.itcast.cn
找首页的客服了解具体报名情况。(小提示:为什么本书中超链接打不开?)
6.传智播客.Net精品就业班讲师介绍
杨中科,专注于企业级系统开发,撰写了《自己动手写开发工具》、《程序员
的SQL学习笔记》等技术图书。CSDN学生大本营2009年度十佳老师。
曾任职于微软中国、金蝶软件等知名IT企业,主导了金蝶EAS湖南烟草局
SCM系统、字符终端图形库AHA3及开发工具AHAIDE、上海浦东发展银
行图形前端等项目的开发,并且在中国工商银行批量平台、集中监控运维系
统(部署于中国工商银行、中国农业银行、交通银行、北京银行、深圳发展
银行等大中型银行)、力诺集团呼叫中心、新广源集团呼叫中心、大连地区
环 境 发 展 预 测 等 项 目 中 担 任 主 力 开 发 人 员 。杨 中 科 发 起 的 如 鹏 网 (
http://www.rupeng.com http://www.rupeng.com)是专门为计算机初学者提供学习指导的网站,
运营两年多来,撰写的大量的学习方法的文章和《C语言也能干大事》等视
频教程帮助无数的计算机初学者走出迷茫走入正确、快速发展的通道。
7.如何利用本课件学习?
配合传智播客.NET视频教程学习(http://www.verycd.com/topics/2857178/),
我们推荐您按如下顺序学习,效果更佳!
第1季C#编程基础
第2季C#面向对象基础
第3季WinForm基础
第4季SQL从入门到提高
第5季ADO.Net
第6季HTML
第7季JavaScript
第8季Dom
第9季JQuery
第10季asp.net基础
第11季asp.net中级
第12季asp.net高级
第13季ajax
传智播客会不断将现场教学中的教学内容以视频教程等方式整理发布出来,包括项目课程、其他.Net
高级技术等,了解最新视频教程及传智播客.Net教学的全部课程内容请访问传智播客.Net培训网站
http://net.itcast.cn
——高级软件人才实作培训专家
北京传智播客教育   www.itcast.cn
C#编程基础
讲师:杨中科
——高级软件人才实作培训专家
.Net开发环境(*了解)
.Net Framework
C# VB.Net F# ……
开发工具:Visual Studio
点Net、Dot Net
C Sharp
IronPython
提供函数库、类库
——高级软件人才实作培训专家
北京传智播客教育 www.itcast.cn
.Net简介(*了解)
.Net Framework
CLR
操作系统
应用程序 应用程序
操作系统
平台无关:CLR、.Net
Framework进行了隔离。
Windows、Linux(Mono)、
智能手机、Web、RIA。学
会.Net什么都能开发,知识
移植。
更安全、更省心:代
码托管、罕用指针、
垃圾回收。
语言无关:VB.Net、C#都
调用同样的类、同样的方
法,VB.Net写的类C#也可
以调用。模糊了语言的差

——高级软件人才实作培训专家
.Net 的版本(*了解)
.Net 1.1
.Net 2.0
.Net3.x
.Net4.x
……
Visual Studio2003
Visual Studio2005
Visual Studio2008
Visual Studio2010
……
向下兼容
大同小异
Express(免费版)
快捷版
Standard
标准版
Professional
专业版
Team Suite
团队版
常用的功能没啥差别,微软的定价策略
——高级软件人才实作培训专家
第一个C#程序
�创建第一个控制台程序并且调试运行。
�为什么要从控制台程序开始?不要把精力放到表现
层,而是把精力放到写代码上。无论控制台还是
Winform还是ASP.Net最难的是写代码,而不是拖控
件。
�唯一需要学的三条控制台指令:Console.WriteLine
:打印输出、Console.ReadLine:从控制台读入一
行、Console.ReadKey:控制台暂停。至于
Console.是什么意思不用管。1+1=2的例子
�占位符是个什么玩意儿?{0}的个数必须和参数的个
数一样,是一一对应的关系。
——高级软件人才实作培训专家
VS开发环境介绍
�解决方案管理器:解决方案、工程、文件
�C#源文件一般以cs结尾
�C#程序的入口是Main函数,在Main中写代码
就行,暂时不用关心其他部分是什么意思
�错误列表。见到编译错误不用慌。错误排除演
示。常见错误:结尾没有分号,大小写错误。
�显示代码行号。工具→选项→文本编辑器
→C#→显示→行号
——高级软件人才实作培训专家
C#语法
�从上到下一条条的依次执行。
�大小写敏感
�函数参数用()包围
�两句代码之间用分号(;)分割(易错:
全角问题)
�注释:单行注释、多行注释。
——高级软件人才实作培训专家
变量
� 把变量看成放数据的容器。
� 定义变量的方式:类型 变量名;  int i3;
� 变量的类型:不同类型的容器放不同的东西,铁罐不能放
硫酸。不能在int类型的变量中放字符串。
� 变量不能放和变量类型不兼容的数据。
� 变量的名字不能重名(不严格)
� 问题
•int i=10;Console.WriteLine("i");
——高级软件人才实作培训专家
常用基本数据类型
� string、int 、char 、bool 、decimal (了解) 、byte(了解)、double(了解)、
long(了解)、float(了解)等。
� bool的取值:true、false。
� 为什么输出"要用转义符"\"",因为编译器默认是遇到"开始字符串,再遇到"是结束字符
串,但是如果遇到前面有\的"就不把它当成有字符串起始意义的"。
� string:"\"ab\""、"ab\nb"、"c:\\a.txt"、@"c:\a.txt"(推荐)。@表示字符串中的\不当
成转义符
� @不是万能的,不能解决字符串中有双引号的问题,如果有双引号还是用转义符
� ‘a’是char,"a"是string
� string s = Console.ReadLine();
� 问题:
• String str=Console.ReadLine();
• Console.WriteLine(str);
• 用户输入a\nb,输出什么?转义符只针对在代码中直接写出的字符串,对于程序
中读取出来没有这个问题。
� 简单的类型转换:Convert.ToString()、ToString()、Convert.ToInt32() 。
� 输入一个数,打印这个数的平方。
——高级软件人才实作培训专家
补充
�问题:int
i=Convert.ToInt32(Console.ReadLine())
�string s1 = Console.ReadLine();
�int i = Convert.ToInt32(s1);
�@可以表示多行字符串。
——高级软件人才实作培训专家
变量的命名
� 命名规则:第一个字符必须是字母或者下划线(_),其后的字
符可以是任意个数字、字母、下划线。不能全部使用C#的关键
字,比如class、namespace、new、void等。判断方式:VS中
亮蓝色的就是关键字。
� 这也是类、函数等的命名规则。
� 中文变量名(类名、函数名)。
� C#中建议变量的开头用小写。
� 下列哪个是正确的变量名?_a、a、a1、a_a、1_a、a1、1a、
a3_、a$b、int、int1、a b、A1、INT。
� 变量的声明:int i;int x,y;int i=3;
——高级软件人才实作培训专家
运算符、表达式
�+、-、*(乘)、/(除)、%(求余)
�+可以用作字符串连接,其他不可以。将string
和其他类型+,会自动tostring();
�易错:string s1 = "hello"+yang;
�++(自增)、--(自减)
�(*)运算符优先级:i1+i2*i3、(i1+i2)*i3。不要
变态,括号是王道。内层的()先计算。
�变量可以和字面量混合运算。
�案例:让用户输入两个数,打印出两个数的和。
——高级软件人才实作培训专家
赋值
� 赋值运算符=,让左边变量的值等于右边的计算结果。这就能解
释令人不解的i=i+1;
� (*)+=、-=、*=、/=。
� i2=i1++;i2=++i1;(了解)。--同理。
� 习题:int a=10;a++;a=a+a;Console.WriteLine("{0}",a);执行结果
是什么?
� 易错:int i=10;int j=i;i=5;j=?。
� int x=10;x+y=80;Console.WriteLine(y); x + y = 80; //左
边的必须是变量!!!不能是常量,不能
是表达式
� 习题:交换两个变量的值
——高级软件人才实作培训专家
布尔运算
� 相等判断:==,不要和=混淆。
WriteLine("{0}",i==1);WriteLine("{0}",i=1);的区别。
Console.WriteLine("{0}",i=1);//C#中赋值表达式也有值,它的
值表示为赋值后变量的值
� 不等判断:!=
� 大小比较:<、>、<=、>=
� 取反:!
� 组合运算:&&(并且)、||(或者)。
• && 并且:只有两边都为true的时候,表达式的值才为true,否则是
false;
• ||或者:两边只要有一个为true的时候,表达式的值就是true,否则
是false;
——高级软件人才实作培训专家
if
if(i>1)
{
}
if(i>1)
{
}
else
{
}
if(i>100)
{
}
else if(i<10)
{
}
else
{
}
单句的时候大括号可以省略,但是不建议省
略,演示说明why
if语句的嵌套
if(i>100||i<10)
{
}
if(i>100&&j>10)
{
}
if((i>0&&j>0)||(i<0&&j<0))
{
}
易错代码:
if(i>10);
{
    Console.WriteLine("是");
}
——高级软件人才实作培训专家
课上练习
� 学编程不是看书,不是听老师讲,而是自己动手写。
� 作业1:提示用户输入密码,如果密码是“888888”则提示正确,否则提示错误。
� 作业2:提示用户输入密码,如果密码是“888888”则提示正确,否则要求再输入
一次,如果密码是“888888”则提示正确,否则提示错误。
� 作业3:提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且
密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用
户用户名不存在。
� 作业4:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于
10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes
、no),如果输入的是yes则提示用户可以查看,否则提示不可以查看。(测试
边界条件,-1,8888888888888888888888888,aaaa。微软如狼似虎的Tester)
� 作业5:依次提示用户输入两个整数(假设i1、i2)。如果i1、i2都是正数,则将
i1的值递增一个数,然后打印i1+i2的值;如果i1、i2都是负数,则将i1的值递减
10个数,然后打印i1*i2的值;如果i1、i2中任一个为0,则提示数据有错误;否则
计算i1*i2的绝对值。
� 注意:变量命名要用有意义的变量名。
——高级软件人才实作培训专家
switch case
� 类似于if...else...else if...else,但是是离散值的判断。
� switch一般都可以用if重写,但是if不一定能用switch重写
� 不要忘了break。C#中的break不写是不行的,除了合并case的情况
switch(i)
case 1:
//
break;
case 2:
//
break;
switch(i)
case 1:
//
break;
case 2:
//
break;
default:
break;
case中的值必须
是常量,不能是
变量、表达式。
switch(i)
case a:
//
break;
switch(i)
case 1:
case 2:
//
break;
被判定的值进入满
足条件的分支执行
——高级软件人才实作培训专家
while循环
while(i<100)
{
  //打印i
  i++;
}
只要while后小括号中的表达式为true,就不断执行
大括号中的代码
while(不是终点)
{
    跑
}
do
{
  //打印i
  i++;
}
while(i<100)
先做……如果满足则再来一次,直至while表
达式为false。至少被执行一次。(*)
练习1:用while计算1到100之间整数的和;(有更好的数学解法)
练习2:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。
练习3:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退
出(return)。
练习4:不断要求用户输入一个数字(假定用户输入的都是正整数),当用户输入end的时候
显示刚才输入的数字中的最大值。设一个变量int max,初始值为0,用户每输入一次就把用
户输入的和max比较一下,如果输入的比max大,则让max等于用户输入。
易错:(1)string s = Console.ReadLine(),读取s的时候并不会再次要求输入;(2)
while(Console.ReadLine()!="q")
——高级软件人才实作培训专家
循环的中断
� break:立即终止整个循环。
� continue:立即终止当前循环步骤,进行下一次循环步骤。
� 练习1:用 while continue实现计算1到100之间的除了能被7整除
之外所有整数的和。
� 练习2:用while break实现要求用户输入用户名和密码,只要不
是admin、888888就一直提示要求重新输入。
� 练习3:编写聊天机器人,如果问“今天天气怎么样?”则回答天气
,如果问……,如果说“88”,则“再见”。
——高级软件人才实作培训专家
for循环
� for(code1;code2;code3)。code1:循环的初始化代码,只在循环开始之前运行一
次;code2,bool类型的表达式,每次循环完前都判断一下是否为true,只有为
true才会进行本次循环;code3在每次循环之后执行一次。各段之间用回车换行
,设置断点查看执行过程。
� for的三段都可以省略,但是不能丢了“;”。
� break、continue同样可以应用于for。
� for和while代码之间都可以互相转换,究竟用哪种方式则取决于一些惯用用法和
个人习惯,不用记,代码写多了自然就有感觉
for(int i=0;i<10;i++)
{
}
for(int i=100;i>0;i--)
{
}
如果是遍历数组,遍历1..100推荐直接在第一段中声明变量。
for中终止条件注意是<还是<=
用 for实现计算1到100之间所有整数的和。用 for实现计算200到300之
间所有整数的和。
——高级软件人才实作培训专家
类型转换Cast(*)
� 把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b,b是源
,a是目标
� 隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是
隐式转换;如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显
式转换(程序员自己负责)。
� 把中国人转换为人是隐式转换,把人转换为中国人则是显式转换(强制转换)
� 内存中的数据没有变化,只是不同的视角而已。
� int、byte的表示范围:int.MaxValue、int.MinValue。
� byte b=1;int i=1;i = b;b = (byte)i;
� 为什么要显式转换?编译器不能保证一定正确,转换结果自己负责。要人、给一
个中国人当前没问题,但是要中国人、给一个人则可能有问题,编译器不承担这
个责任,由开发人员来保证。
� 只有在内存存储上存在交集的类型之间才能进行Cast,否则则不可以,比如不可
以int i;string s=(string)i;反之也不可以。这种情况必须用Convert类提供的方法。
——高级软件人才实作培训专家
类型转换Convert
�Convert不再是内存级别的转换,而是考
虑数据意义的转换。可以把姓名Convert
成人。Convert是一个加工、改造的过程
�Convert.ToInt32、Convert.ToString、
每种类型都还有ToString方法(类型的
ToString和Convert.ToString略微的差别
暂时不用关心)
——高级软件人才实作培训专家
枚举
确定数量、确定值的几个取值:东西南北、男女、上中下。
enum Gender{male,female}
enum QQStatus{online,offline,hidden}
为什么有枚举,如果用string来表示四季:
• //1、需要在每个地方都进行数据合法性的校验
• //2、给函数传递参数的时候,只有看文档才只能哪些值合法
枚举的用法,QQStatus status = QQStatus.online;
和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程
序处理起来更方便。
为什么不能:QQStatus status = online;
——高级软件人才实作培训专家
数组
� 保存多个值。任意类型都可以声明数组。
int[] nums = {5,3,8} int[] nums = new int[3]
int[] nums = new int[3]{5,3,8}//个数和声明个数必须一致
int[] nums = new int[5]{5,3,8}//错误
使用索引器访问指定编号位置的元素,访问数组元素:nums[0]、nums[1]。索引从0开始。取到的元
素的类型就是数组元素的类型。还可以对数组元素进行赋值
数组的长度一旦声明就无法改变
练习1:从一个整数数组中取出最大的整数
练习3:将一个字符串数组输出为|分割的形式,比如“小月月|大月月|老月月”
练习4:将两个int类型数组连接为一个string类型数组。
练习2:计算一个整数数组的所有元素的和。
练习5:有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转
换为字符串保存到字符串数组中。string[] strs = new string[values.Length];
练习6:将一个字符串数组的元素的顺序进行反转。{"3","a","8","haha"}
{"haha","8","a","3"}。第i个和第length-i-1个进行交换。
练习7:将一个int数组向左滚动平移1次。{3,5,8,7}→{5,8,7,3}
——高级软件人才实作培训专家
数组2
foreach循环
string[] names= {"tom","jerry","lily"};
foreach(string name in names)
{
   Console.WriteLine("我的名字{0}",name);
}
和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可
以从后向前遍历
只能(只应该)在foreach对集合进行读,而不应该写。
——高级软件人才实作培训专家
函数
� 函数就是将一堆代码进行重用的一种机制。函数就是一段代码,
这段代码可能有输入的值(参数),可能会返回值。一个函数就
像一个专门做这件事的人,我们调用它来做一些事情,它可能需
要我们提供一些数据给它,它执行完成后可能会有一些执行结果
给我们。要求的数据就叫参数,返回的执行结果就是返回值。
� Console.ReadLine就是一个有返回结果的函数;
Console.WriteLine("hello")就是一个有执行参数的函数,只有告
诉WriteLine被打印的数据它才知道如何打印;int i=
Convert.ToInt32("22")则是一个既有参数又有返回值的函数。
� 有了函数写代码就像拼积木,C#中的各种各样的技术其实就是
通过for、if等这些基础的语法将不同的函数按照一定的逻辑组织
起来。
——高级软件人才实作培训专家
自己写函数
1 读取输入的整数,定义成函数,多次调用
static int ReadInt()
{
   String s = Console.ReadLine();
   return Convert.ToInt32(s);
}
写程序测试,程序调用到函数的时候是进入函数内部执行的,执行完毕再继续向下执行。
2、函数如果没有返回值则标记返回值类型为void
3、return语句
导致函数立即返回。在返回值为void的函数中return,在返回值非void的函数中"return 数值"。
return不是结束程序,只是结束当前函数,控制台程序中Environment.Exit(0)退出程序。
——高级软件人才实作培训专家
函数返回值易错点
一个函数如果“答应”返回一个非void类型的值
,则函数的所有路径都要有返回值。比如
将对输入年龄转换为年龄段描述的函数。
——高级软件人才实作培训专家
函数参数
� 计算两个整数中的最大值:int Max(int i1,int i2)
� 计算输入数组的和:int Sum(int[] values)
� 确定函数参数的原则:自己能确定的数据自己内部解决,自己确
定不了的数据通过参数传递。
� 练习:string[] strs={"aa","333","ccc"};
� 返回给我一个字符串,然后字符串使用我指定的分隔符来进行分
割,比如我指定用"|"分割,那么返回给我"aa|333|ccc"。
� string Join(string[] strs,string seperator)
� 问题:函数名开头大写,参数名开头小写,参数名、变量名要有
意义
——高级软件人才实作培训专家
可变参数
�参数数组:int sum(params int[] values)
int sum(string name,params int[] values)
可变参数数组必须是最后一个
�参数默认值(.Net4.0) :void
SayHello(string name,int age=20)(*了解)
——高级软件人才实作培训专家
函数重载(函数重名)
函数的重名:错误
static void SayHello(string name)
{
    Console.WriteLine("我是{0}",name);
}
static void SayHello(string name)
{
    Console.WriteLine("I am{0}",name);
}
static void SayHello(string name)
{
    Console.WriteLine("我是{0}",name);
}
static void SayHello(int age)
{
    Console.WriteLine("我的年龄{0}",age);
}
static void SayHello(string name) 错误
{
    Console.WriteLine("我是{0}",name);
}
static int SayHello(string name)
{
    return 10;
}
static void SayHello(string name)
{
    Console.WriteLine("我是{0}",name);
}
static void SayHello(string name,string nickname)
{
    Console.WriteLine("我是{0},昵称是
{1}",name,nickname);
}
构成重载的条件:参数类型不同或者参数个数不同(不严谨
的),与返回值无关。
——高级软件人才实作培训专家
字符串的处理
� C#中单个字符用单引号包含就是char类型,('a'),单引号中放
且只能放一个字符。
� 单个字符也可以表示为字符串,还可以有长度为0的字符串
� 使用s.Length属性来获得字符串中的字符个数
� string可以看做是char的只读数组。char c = s[1];。例子:遍历输
出string中的每个元素。
� C#中字符串有一个重要的特性:不可变性,字符串一旦声明就
不再可以改变。所以只能通过索引来读取指定位置的char,不能
对指定位置的char进行修改。
� 如果要对char进行修改,那么就必须创建一个新的字符串,用s.
ToCharArray()方法得到字符串的char数组,对数组进行修改后
,调用new string(char[])这个构造函数(暂时不用细研究)来创
建char数组的字符串。一旦字符串被创建,那么char数组的修改
也不会造成字符串的变化。例子:将字符串中的A替换为a。
——高级软件人才实作培训专家
常见疑问
� 谁说字符串不可变?string s = "abc";s="123",s这不是变了吗
� 要区分变量名和变量指向的值的区别。程序中可以有很多字符串,然后
由字符串变量指向他们,变量可以指向其他的字符串,但是字符串本身
没有变化。字符串不可变性指的是内存中的字符串不可变,而不是变量
不变。
� string s10 = s1;//s10指向s1指向的字符串,而不是s10指向s1,哪怕s1
以后指向了其他内存,那么s10还是指向"hello"
abc
admin
888888
s1
s1
——高级软件人才实作培训专家
String类常用函数
� ToLower():得到字符串的小写形式。
� 注意字符串是不可变的,所以这些函数都不会直接改变字
符串的内容,而是把修改后的字符串的值通过函数返回值
的形式返回。s.ToLower()与s=s.ToLower()
� ToUpper():得到字符串的大写形式; Trim()去掉字符串两
端的空白。
� s1.Equals(s2, StringComparison.OrdinalIgnoreCase),两
个字符串进行比区分大小写的比较。
——高级软件人才实作培训专家
字符串的分割
� string[] Split(params char[] separator):将字符串按照指定的分割符分
割为字符串数组;
� string[] Split(char[] separator, StringSplitOptions options)将字符串按照
指定的char分割符分割为字符串数组( options 取
RemoveEmptyEntries的时候移除结果中的空白字符串);
� string[] Split(string[] separator, StringSplitOptions options)将字符串按
照指定的string分割符分割为字符串数组。
� 例子1:从日期字符串("2008-08-08")中分析出年、月、日;2008年
08月08日。
� 例子2:从一个记录了学生成绩的文本文档,每个学生成绩是一行,每
行是用|分割的数据,用|分割的域分别是姓名、年龄、成绩,写程序取
出成绩最高学生的姓名和成绩。参考:使用string[] lines =
System.IO.File.ReadAllLines(@"c:\root.ini", Encoding.Default);从文本
文件读取数据,返回值为string数组,每个元素是一行。
——高级软件人才实作培训专家
字符串函数详解
� 字符串替换:string Replace(string oldValue, string newValue)
将字符串中的出现oldValue的地方替换为newValue。例子:名
字替换。
� 取子字符串:string Substring(int startIndex),取从位置
startIndex开始一直到最后的子字符串;
� string Substring(int startIndex, int length),取从位置startIndex
开始长度为length的子字符串,如果子字符串的长度不足length
则报错。
� bool Contains(string value)判断字符串中是否含有子串value
� bool StartsWith(string value)判断字符串是否以子串value开始;
� bool EndsWith (string value)判断字符串是否以子串value结束;
� int IndexOf(string value):取子串value第一次出现的位置。
——高级软件人才实作培训专家
字符串的处理练习
� 课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺
序输出。"abc"→"cba"
� 课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。
"hello c sharp"→"sharp c hello"
� 课上练习3:从Email中提取出用户名和域名:abc@163.com。IndexOf
找到@的位置。SubString。
� 课上练习4:文本文件中存储了多个文章标题、作者,标题和作者之间
用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到
控制台的时候最多标题长度20,如果超过20,则截取长度17的子串并且
最后添加“...”,加一个竖线后输出作者的名字。
� 练习5:自己动手写聊天机器人,能够回答不同城市的天气、回答感情
问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)
。问“天气:北京”就回复“北京的天气是晴”。
——高级软件人才实作培训专家
函数的ref、out参数(*)
函数参数默认是值传递的,也就是“复制一份”,例子:
int age=20;
IncAge(age);
Console.WriteLine("age={0}",age);
ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而
out则是内部为外部赋值,所以不需要初始化,而且外部初始
化也没用。
ref应用场景内部对外部的值进行改变,out则是内部为外部变量
赋值,out一般用在函数有多个返回值的场所。
案例:两个变量的交换;int.TryParse。
——高级软件人才实作培训专家
面向对象概念(*)
�面向对象不是取代面向过程的。
�类、对象。“人”是类,“张三”是“人”这个类的对象。类是抽象的,对
象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实
例(Instance)。类就像int,对象就像10。字段Field(和某个对象相
关的变量),字段就是类的状态。人这个类有姓名、年龄、身高等字
段。类不占内存,对象才占内存。
�方法Method,方法就是类能够执行的动作,比如问好、吃饭等。
�类的继承,类之间可以有继承关系,比如“电脑”类可以从“电器”类继
承,这样的好处是“电脑”类只需要定义自己特有的字段、方法就可
以,也就是只要定义内存大小、CPU型号这些字段或者弹出光驱等方
法就可以。父类(Parent)、基类(Base,基业,祖宗十八代传下来的)。
电脑类是电器类的子类(ChildClass)。重用。
�面向对象的三个特性:封装、继承、多态。
�没有面向对象的世界中的难题。
——高级软件人才实作培训专家
定义类
�class Person{ }
定义方法(类的函数):
    class Person
    {
        public void SayHello()
        {
            Console.WriteLine("你好,我是{0}",this.Name);
            //不写this.也可以,写上更清晰
        }
    }
初始化对象,调用方法:
            Person tom = new Person();
            tom.SayHello();
对象必须调用构造函数初始化“new Person()”后才能用,不
能Person tom这样声明;就调用。
定义字段:
    class Person
    {
       public string Name;
        public int Age;
        public void SayHello()
        {
            Console.WriteLine("你好,我是
{0}",Name);
        }
    }
初始化对象,调用方法:
            Person tom = new Person();
            tom.Name="tom";
            tom.SayHello();
Console.WiteLine("{0}",tome.Name)
一个类可有有多个实例。
类就是把一系列相关的变量(状态)、行为定义为一个整体。
字段记录的就是这个对象相关的数据。
——高级软件人才实作培训专家
成员访问级别
� 字段、方法、属性(后面讲)都可以叫做类的成员Member,它们都需要定义
访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到
面向对象中“封装”的目的。
� 几个访问级别:public(任何地方都可以访问);private(默认级别。只能由
本类中的成员访问)。还有internal、protected两个级别,以后会讲。
    class Person
    {
       private string Name;
      
       public void GiveName(string name)
{
    Name = name;//拒绝不好听的名字
}
        public void SayHello()
        {
            Console.WriteLine("你好,我是
{0}",Name);
        }
    }
           Person tom = new Person();
           tom.GiveName("tom");
            //tom.Name="tom";
            tom.SayHello();
 
永远不要把字段public
——高级软件人才实作培训专家
属性
惯用法:属性开头字母大写,字段开头字母小写
    class Person
    {
        private int age;
        public int Age
        {
            get{return age;}
            set{age=value;}
        }
        public void SayHello()
        {
            Console.WriteLine("我的年龄是{0}",Age);
        }
    }
�只用set或者只用get就可以定义只读
或者只写属性(只写的不常见)
�可以为set、get设置访问级别
�例子,限制非法值的设置
�(.Net3.x)简化set、get:public int
Age{get;set;}。适合于set、get中没有
特殊逻辑代码的情况。允许外部访问
的值一定要声明为属性。
�字段和属性的区别是什么?属性看似
字段、不是字段,可以进行非法值控
制,可以设置只读。
�set、get块内部其实就是get_***、
set_***方法。
——高级软件人才实作培训专家
课上练习
�面向对象版聊天机器人
�机器人有不同的名字、维护自己的
FullLevel,可以SayHello(我叫***),可
以喂食(Eat(int foodCount)),可以对它
说话(Speak),对异常情况(错误的喂
饭数字,喂的太多撑死了)进行处理,有
两个机器人供选择,一开始通过1、2数字
选择聊天机器人。
——高级软件人才实作培训专家
构造函数
� 构造函数用来创建对象,并且可以在构造函数中对对象进
行初始化。
� 构造函数是用来创建对象的特殊函数,函数名和类名一样
,没有返回值,连void都不用。
� 构造函数可以有参数,new对象的时候传递函数参数即可
� 构造函数可以重载,也就是有多个参数不同的构造函数。
� 如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不再有默认的无参构造函数,如
果需要无参构造函数,则需要自己来写。
——高级软件人才实作培训专家
对象的引用(非常重要)
�i1=3;i2=i1;i1++;//i2是3
�p1=new Person();p1.i=3;p2=p1;p1.i++;//p2.i
是4
�int、string、decimal、bool、byte等基础类型
(值类型)是传递拷贝;对象(引用类型)则
是传递引用。因为基础类型不怎么占内存,而
对象则比较占内存。
�函数间传递对象。
�为对象变量重新赋值。p2=p1是让p2指向p1指
向的对象。
——高级软件人才实作培训专家
继承
public class Chinese:Person
{
    public string HuKou{get;set;}
    public void KongFu(){....}
}
Chinese p1 = new Chinese();
p1.Name="李雷";
p1.HuKou="北京市朝阳区";
p1.SayHello();
p1.KongFu();
定义类的时候不指定父类,则父类是
Object类。Object类是任何类的直接或者间
接父类。
——高级软件人才实作培训专家
对象的隐式转换和显式转换
Chinese ch= new  Chinese();
//隐式转换,把子类变量赋值给父类变量
Person p = ch;
//显式转换,把父类变量赋值给子类变量
Person p = new Chinese();
Chinese ch = (Chinese)p;
//如果对象不在同一个继承树路径上
//则不能强制类型转换
Dog g = new Dog();
Chinese ch = (Chinese)g;//错误
//is运算
if(p is Chinese)
{
    Console.WriteLine("中国人");
}
else if(p is Korean)
{
    Console.WriteLine("韩国人");
}
//as 运算符
Chinese ch = p as Chinese ;
if(ch!=null)
{
   Console.WriteLine("中国人");
}
Korean ch = p as Korean ;
if(ch!=null)
{
   Console.WriteLine("韩国人");
}
()转换和as 转换的区别:如果转换失败()
会报异常,而as则会返回null。
——高级软件人才实作培训专家
异常与异常处理
� 传统的错误表示方式:错误码。举例。需要知道不同错误
码的含义,如果不处理错误码,则程序可能陷入不可以预
置的错误。陈摄影师以为文件已经被删除造成的麻烦。
� 错误码的缺点:不处理则很难发现,每次处理则很麻烦;
难以看出错误的原因;容易使得程序进入不确定状态。
� try catch。Exception ex 异常也是对象。
� Exception 类主要属性:Message、StackTrace
� 发生异常后程序默认就退出了,try代码块中的后续代码不
会被执行。catch以后的代码则会继续执行。
� 不要吃掉异常,一般情况下不需要处理异常。
� 扔出自己的异常,扔:throw,抓住:catch
——高级软件人才实作培训专家
常量与静态成员
� const常量。常量名要大写。一定不会变化的值才能
声明为常量。
�全局变量。static类变量。
�不用new就能用的方法:static方法,static方法其实
就是普通函数
�在static方法中可以调用其他static成员,但是不能
调用非static成员。在非static方法中可以调用static
成员。
�静态类,不能被new的类就是静态类。静态类一般
用来实现一些函数库。***Helper,SqlHelper,
PageHelper。
——高级软件人才实作培训专家
命名空间
� namespace(命名空间),用于解决类重名问题,可以看
做“类的文件夹”。
� 在代码中使用其他类的时候需要using类所在的namespace
。System.Collections.ArrayList,快速引入的方法,右键
→解析(Ctrl+.)。
� 为什么使用Convert、Console等类不需要自己写using?
� 如果代码和被使用的类在一个namespace则不需要using。
� 可以修改默认的namespace,因此不要认为在相同文件夹
下就不用using,不在相同文件夹下就需要using。
� 类内部定义的类的引用:namespace+外部类名+内部类名
——高级软件人才实作培训专家
索引器
� C#中提供了按照索引器进行访问的方法
� 定义索引器的方式:string this[int index]{get { return ""; }set { }}
,string为索引器的类型,[]中是参数列表。进行索引器写操作就
是调用set代码块,在set内部使用value得到用户设置的值;进行
读操作就执行get代码块。
� 索引器参数可以不止一个,类型也不限于int,几乎可以是任意类
型。
——高级软件人才实作培训专家
第一个Windows程序
�WinForm:Windows Form,.Net中用来开发Windows窗口程
序的技术,无论是之前学的控制台程序,还是后面要学的
ASP.Net都是调用.Net框架,因此所有知识点都是一样的。
�新建一个Windows项目:Windows→Windows窗体应用程序
�控件:窗口上很多元素都是相似的,因此将这些元素抽象为
一些类,这些类就叫做控件。识别PowerPoint中的控件,按钮
(Button)、文本框(TextBox)、标签(Label)、单选按钮
(RadioButton)、复选框(CheckBox)。
�添加、删除、移动、缩放控件
——高级软件人才实作培训专家
WinForm概念
� 拖放控件,输入姓名,点击按钮,窗口标题显示问好。设
置窗口对象的属性就可以改变窗口的外观。
� 点击按钮调用TextBox的Hide方法,调用控件的方法就可
以使得控件发生动作。
� 当用户点击按钮的时候Button1_click方法被调用,这个方
法不是程序员调用的,而是程序员把方法写好,并且说明“
当用户点击按钮的时候执行Button1_click方法中的代码”,
这一点和控制台程序不同。这被称为“好莱坞原则”:不要
找我,我会找你(Don't call me,I will call you )
� 控件、属性、事件、事件处理方法、控件的名字(控件的
实例;对象名)
——高级软件人才实作培训专家
简单的WinForm程序
� 简单的加法计算器,用户在文本框1、2中输入两个数,点击按钮,在文本框3中
显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。
int.TryParse、MessageBox.Show。 string s = string.Format("{0}你好",
textBox1.Text);//推荐
� 练习1:输入宽和高,输出面积。
� 练习2:输入Email地址,输出用户名和域名。
� 练习3:用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示从文本框
1中的数字到文本框2中数字之间的累加和。如果1或者2为错误的数据格式,则弹
出对话框提示错误。如果文本框1中的数字比文本框2中数字大,则提示错误。
� 练习4:页面上有一张图片(PictureBox,在Image属性中加载图片),默认是隐藏
的(Visible=False),用户在文本框中输入身份证号
(131226198105223452),点击按钮,如果年龄大于18岁则显示图片
(Visible=True),否则提示年龄太小。取当前年份:DateTime.Now.Year。
� 练习5:页面上有一个文本框,文本框左侧和右侧各有一个按钮,点击左侧按钮
文本框中的文字向左循环滚动一次,点击右侧按钮文本框中的文字向右循环滚动
一次。
——高级软件人才实作培训专家
TextBox
文本框的几种模式:Multiline(多行)、PasswordChar(密码)
将文本框的PasswordChar设为*就是密码框效果,将MultiLine属性设
置为true并且将高度拉到合适的大小就是多行效果,
textBox4.AppendText("hello"+"\n")就是附加一行。
控件名要有含义、控件名前缀的“潜规则”。按钮Button:btn;文本框
TextBox:txt;复选框CheckBox:cb。控件的名字要有意义。
案例1:登录界面。登录错误三次退出程序,假设用户名、密码是
admin、888888,不区分大小写。(易错点:局部变量与类变量)
退出程序this.Close()或者Application.Exit()
案例2:修改密码。界面上有旧密码、新密码、重复新密码,假设旧
密码为888888,两次输入的新密码必须和旧密码不一样,并且两
次输入的新密码必须一致。
案例3:在多行文本框中输入多行“姓名=成绩”格式的数据,要求输出
成绩最高的学生的姓名和成绩。
——高级软件人才实作培训专家
ComboBox
� SelectedIndex :选中项的序号。没有任何选中的时候是-1
,否则是选中的序号(0开始)
� 练习1:简单的四则运算器
� 如何禁止用户编辑?三种风格。
� 响应选择改变事件
� 练习2:省市选择器
� 练习3:日月选择器,假设2月份总是28天。1、3、5、7、
8、10、12月份是31天,其他是30天。表驱动。
——高级软件人才实作培训专家
ListBox
� ListBox:SelectedIndex、Items、SelectedIndexChanged
事件。
� 多选的方式,设置SelectionMode为MultiExtend
� ListBox:SelectedIndices、SelectedItem、SelectedItems
、SelectionMode;
� 案例:人员选择,左边选择到右边、右边退回左边、批量
添加。遇到的问题,删除顺序,计算机的思维。
� 问题:删除自动生成的事件代码。先在事件视图中删除方
法名,再到代码中删除;先删除form.cs中的,再去手动删
除designer.cs中。
——高级软件人才实作培训专家
计时器Timer
� Timer。每隔一段时间触发一个事件。不可视控件。Inerval
、Enabled。Tick事件。
� 计量单位:ms(毫秒)。 1秒=1000毫秒
� DateTime
� 案例:小时钟。取当前时间DateTime.Now.ToString();
� 案例:走马灯
� 案例:QQ消息窗口。如何显示其他窗口。
——高级软件人才实作培训专家
右下角提示信息窗口
�Windows坐标系:左上角为原点;窗口的
Left值为窗口左上角的横坐标,Top值为
窗口左上角的纵坐标;窗口的Width为宽
度,Width为高度。
�取得屏幕工作区
Screen.GetWorkingArea(this)
�将窗口显示在右下角,简单的数学运算。
——高级软件人才实作培训专家
滑动提示窗口
�创建一个Timer,每隔一段时间修改一下
Top的值,当全部显示出来的时候禁用
Timer。
�对外提供提供SlideShow(String
caption,String msg)方法
�超时自动关闭。
�滑动隐藏。Timer接力。
�鼠标点击则取消“超时自动隐藏”。
——高级软件人才实作培训专家
树状结构数据
——高级软件人才实作培训专家
TreeView控件
� 树的基本概念:父节点、子节点、兄弟节点、根节点
� 编辑节点,节点名字Name,节点文字Text
� 动态添加节点(VS编辑界面中有增加根节点、增加子节点两个
按钮):
• 向根节点下增加子节点:treeView.Nodes.Add,它的返回值
就是创建的节点对象。treeView.Nodes代表根节点的所有子
节点。
• 向TreeNode增加子节点,treeNode.Nodes.Add,它的返回
值就是创建的节点对象。treeNode.Nodes代表节点的所有子
节点。
——高级软件人才实作培训专家
练习:构建省市县三级树
�首先treeView.Nodes.Add添加省节
点。并且把添加的节点TreeNode对
象放到treeNodeLiaoning等变量中
� 向treeNodeLiaoning等省级节点下
添加市节点,并且把添加的节点
TreeNode对象放到
treeNodeShenYang等变量中
� 向treeNodeShenYang等市节点下
增加区县节点。
——高级软件人才实作培训专家
TreeView深入
�选择项发生变化的时候在TextBox中显示当前
选择项的值。AfterSelect事件。
�TreeNode的Tag,TreeNode中Text只能盛放
显示的值,可以用Tag属性给节点关联一个对
象。 Tag属性是Object类型的,因此可以关联
任何的对象。案例:省市县显示当前项的邮编
�练习:选择节点的时候显示市长、人口(int)
类型。
——高级软件人才实作培训专家
容器控件
�GroupBox
�Panel
�TabControl(增删Tab页,设定激活的
页)
——高级软件人才实作培训专家
其他常用控件
�RadioButton:Checked。CheckedChanged
和Click事件的区别
�CheckBox
�CheckedListBox
�DateTimePicker。
�PictureBox
�作业:开发注册页面。数据合法性判断:
Email、密码强度实时显示。带协议、同意
协议CheckBox。
——高级软件人才实作培训专家
文件对话框
� 打开文件对话框 OpenFileDialog
� 两种创建方式:可视化拖放、new
� 显示对话框的方式:ShowDialog
� ShowDialog的返回值DialogResult类型
� 通过FileName属性得到选择的文件名
� 属性:Title、InitialDirectory
� 文件过滤器 Filter:文本文件|*.txt|All|*.*
�SaveFileDialog。OpenFileDialog相同的
成员:Title、ShowDialog、FileName等
——高级软件人才实作培训专家
列表(非范型)
� 数组的局限性:无法对数据中的数据进行动态的增删。
� ArrayList(列表)。Add、Clear、Contains、Count、
IndexOf、Insert、Remove、RemoveAt、Reverse、Sort
、索引器。
� 作业1:输入整数,然后反序输出
� 作业2:两个列表的连接、合并。
� 作业3:分拣奇偶数,奇数在左,偶数在右,面试题
——高级软件人才实作培训专家
Hashtable
�简繁体翻译,为什么效率这么高
�HashSet
——高级软件人才实作培训专家
范型
�用ArrayList的麻烦的地方:数据放进去就
不知道是什么类型的了;不能防止非法类
型数据的放入;将ArrayList返回给其他函
数,会令调用者很困惑。
�List<int> 除此除外并无不同。
� IEnumerable<int>、ICollection<int>
�除了List类外,还有很多类支持范型,比
如Dictionary<K,V>等,待定的类型还可
以不止一个。简繁体翻译器。
——高级软件人才实作培训专家
Dictionary
�Key-value Pair 键值对
�作业:Dictionary性能测试
�Dictionary<K,V>:
•Add:添加,如果重复,则报错
•索引器:可以重复设置,即使不存在也没关系
,如果重复则保留最后一次的值
•ContainsKey,判断是否存在这个Key
——高级软件人才实作培训专家
对话框、字符串、数组综合案例
选择成绩文件。计算平均分,查找某个学生
的成绩。File.ReadAllLines
——高级软件人才实作培训专家
菜单、工具栏
�主菜单(MenuStrip):分割线、快捷键、图标、子菜
单、事件响应。
�右键菜单(ContextMenuStrip)
�工具栏ToolStrip
�状态栏 StatusStrip
——高级软件人才实作培训专家
菜单工具栏案例
�案例:自己动手写记事本。打开、保存、
另存为、退出、剪切、复制、粘贴
�带工具栏
�练习:标题显示文件名
�练习:状态栏中显示当前时间
——高级软件人才实作培训专家
调试(*理解)Debug
�暂停(不知道程序现在运行到哪里了)
�断点、设置断点 breakpoint
�条件断点
�命中次数断点
�查看变量的值,查看表达式的值。红色、
黑色
——高级软件人才实作培训专家
变量作用域
变量名:变量名就像试验实例容器的编号,在一个实验室中,编号不能
重复。如果去了更高一级的实验室,就不能和下属的实验室的容易编号
重复。只要不出实验室,不同实验室之间的容器编号可以重复。
        static void Main(string[] args)
        {
            string name = "tom";
            SayHello();
        }
        static void SayHello()
        {
            Console.WriteLine("我的姓名是:
{0}",name);
        }
        static void Main(string[] args)
        {
            string name = "tom";
            SayHello();
        }
        static void SayHello()
        {
            string name = "jerry";
            Console.WriteLine("我的姓名是:
{0}",name);
        }
——高级软件人才实作培训专家
变量作用域2
            string name = "tom";
            if (name == "tom")
            {
                string name = "jerry";
            }
            for (int i = 0; i < 10; i++)
            {
                string name =
i.ToString();
            }
           
Console.WriteLine("{0}",name);
            for (int i = 0; i < 10; i++)
            {
                string name =
i.ToString();
            }           
Console.WriteLine("{0}",i);
            int i;
            for (i = 0; i < 10; i++)
            {
                string name = i.ToString();
            }
            Console.WriteLine("{0}",i);
        static void SayHello(string name)
        {
            string name = "lily";
            Console.WriteLine("我是{0}",name);
        }
在同一个括号内变量定义不能重名,括
号可以嵌套,但是通过函数的调用并不
在这个范围内
            int i = 3;
            if (i > 3)
            {
                if (i < 100)
                {
                    int i = 10;
                }
            }
            if (s=="a")
            {
                int i = 0;
            }
            if (s=="b")
            {
                int i = 0;
            }




看完扫码免费领红包



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.Net精品就业班课程表 : 1、.Net基础加强(10天) 核心技术课程 常用数据结构(List、Dictionary、Array)、多态、常用设计模式、反射、常用.net类库、泛型、IO流、委托事件、正则表达式、XML、反射、GC等。 2、数据库开发及ADO.Net(6天) 核心技术课程 数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库设计范式、数据库调优。 ADO.Net(行集、数据集、类型化数据集、SQLHelper、SQL注入漏洞防范、数据绑定)。 3、三层架构MIS项目(5天) 查看项目演示 功能点 本项目基于流行的三层架构(DAL+BLL+UI)。 主要功能点:高安全性的用户管理体系、高安全性的异构系统数据导入导出、拼音检索、复合检索、无限级次数据管理、个性化邮件群发、Excel文件导入导出。 技术点 ADO.Net技术应用、SQLServer、MD5安全算法、基于NPOI的Excel文件处理、树状结构数据处理、递归、CodeSmith、代码生成器、三层架构。 项目说明 这是一个用WinForm技术实现的系统,传智播客在开课的半个月就安排一个项目,体现了传智播客“项目驱动学习”的先进教学理念。 4、网页开发与JavaScript(7天) 查看案例演示 核心技术课程 HTML基础加强、css(包含Div+CSS布局)、JavaScript、Dom(事件、window对象、document对象、对话框、定时器、粘贴板、动态Dom、跨浏览器兼容性解决方案、JS压缩和CDN、Internet Explorer Developer Toolbar)、JQuery(JQuery函数、隐式迭代、链式编程、id选择器、tag选择器、CSS选择器、层次选择器、表单选择器、过滤选择器、复合选择器、节点导航、节点操作、样式操作、事件、动画、JQuery Cookie、JQuery Live、JQueryUI)。 课程说明 CSS、JavaScript是ASP.Net开发的基础,把这些掌握好了就能很轻松的学会ASP.Net;Dom是实现网页动态效果的技术,在网站越来越个性化年代,招聘企业对应聘者的Dom水平要求非常高;JQuery是近几年异军突起的JavaScript框架库,几乎成了Web前端开发事实上的标准,大部分企业都是使用JQuery进行Web前端的开发。 学完了这阶段课程,学员将学会开发主流网站的前端效果,比如:焦点图、滚动展示图、网页防复制、网页自定义菜单、WebOS、美女时钟、无刷新评论、评分控件、表格特效、图片悬浮详细信息、微博界面、QQ消息框效果、Div对话框等。 5、ASP.Net开发(12天) 核心技术课程 自己动手写Web服务器(Socket、多线程)、ashx模式Web开发、ViewState、Cookie、Session、Http协议、Web开发基本原则、XSS漏洞防范、Request对象、Response对象、Server对象、虚拟路径、HttpHandler深入、ASP.Net生命周期、WebForm原理、服务端基本控件、WebShell漏洞防范、HTML服务端控件、验证框架、MasterPage、数据绑定控件(ObjectDataSource、列表类绑定控件、GridView、FormView、ListView、Repeater、高效率分页)、CKEditor、Membership、缓存、互联网调优(SEO、HTML压缩、页面静态化、移除ViewState、表单GET化)、URL重写、错误处理、AJAX(XMLHTTP、JQuery AJAX、Json)、全局文件、HttpHandler与HttpModule、IIS配置。 课程说明 由于微软对ASP.Net进行高度封装,因此ASP.Net入门非常简单,开发人员不需要了解HTML、JavaScript、Http协议也可以快速开发出一个Web系统,正因为如此,社会上充斥着大量这样的“拖控件的开发人员”,使得很多Java、PHP等语言的开发人员诋毁ASP.Net开发人员的时候经常会说“你们什么都不懂,就会拖控件”。ASP.Net的快速开发是ASP.Net非常大的一个优点,可以加快开发效率,这是行业的发展趋势,但是局限于这样的“傻瓜化开发方式”的开发人员的竞争力和成长性都是非常有限的,遇到ASP.Net一些高级技术(比如ASP.Net MVC、SEO、网站调优、服务端客户端混合编程、AJAX等)的时候就完全不能胜任。通过上一个阶段的HTML、JavaScript、Dom的学习,学员已经有了很好的HTML、JavaScript基础;在ASP.Net课程的一开始,不是直接教学员怎么拖ASP.Net控件进行快速开发,而是通过ashx的模式开发原始的动态网站,让学员明白“请求—处理—响应模型”、“Http协议、Http无状态”、“c#代码渲染生成浏览器端JavaScript”、“ViewState的作用”、“Session的原理”等这些基本而又重要的原理,从而扫清后面ASP.Net知识学习的基础性障碍。 由于访问量非常大,因此互联网项目的开发对ASP.Net开发人员的要求非常高,所以我们安排了互联网调优、缓存、网站防黑等内容。 ASP.Net中控件数量是非常多的,讲解ASP.Net的教材通常要上千页,让初学者望而生畏,其实ASP.Net大部分控件相似性非常强的,同类型的控件学会了一个那么其他控件也就很容易学会了。比如只要学会了DropDownList,那么RadioButtonList、ListBox、CheckBoxList、BulletedList等几乎不用学就会用;再比如只要学会了ListView,那么Repeater、GridView、FormView等控件也是触类旁通。传智播客认真钻研教学,对知识进行分类、整理、提炼精华,让学员在短时间内掌握ASP.Net技术。 ASP.Net中有一些技术是有局限性的,传智播客根据这些技术在企业中的实际应用情况进行了调整、补充。比如项目中几乎没有在UI层直接访问数据库的,而是采用三层架构,因此我们不讲解UI层直连数据库的控件SQLDataSource,而是把主要精力放在讲解三层架构开发模式。再比如ASP.Net内置的AJAX解决方案UpdatePanel只在部分要求不高的内网项目中才被使用,因此我们在讲解UpdatePanel的使用和原理之外,把更多的时间放在讲解企业中用的最多的JQuery AJAX解决方案上。 6、B/S系统项目(7天) 项目说明 1、网上图书商城。这是一个典型的B2C网上商城,使用经典的复杂三层架构(工厂模式)进行开发。涉及图书管理、搜索、订单管理、导航管理等核心模块。在讲解ASP.Net基础后安排这样一个B2C网上商城系统,让学员在实际项目中将学到的知识学以致用。 2、办公自动化OA系统。这是一个典型的基于ASP.Net技术的OA协同办公项目,包含了权限管理、公告管理、文档管理、工作流、论坛管理、新闻模块管理、人员管理等典型的OA系统模块。 3、数据采集和邮件群发。这是一个基于多线程的邮件营销平台,核心技术包括网络爬虫、多线程、HTML解析、邮件发送、生产者消费者模式等。 注:以上三个案例,上课时会根据每个班的课堂反馈选择其中一个案例予以讲解学习。 7、如鹏网项目(9天) 查看项目演示 功能点 站内搜索、栏目管理、视频播放(完全模仿优酷视频页面)、焦点图、静态页面生成(新浪、搜狐等大型网站普遍采用的技术)、文章管理、无刷新评论、评论的无刷新分页、敏感词过滤、用户管理、友情链接管理、缓存管理、广告位管理、RSS输出、水印设置、无刷新上传图片、搜索引擎优化设置、数据备份恢复、伪静态设置、网上商城、订单管理、在线支付(支持支付宝、财付通、块钱等第三方支付平台)、网站调优(数据库优化、缓存、静态页、CSS Spirit、js压缩)。 技术点 搜索引擎技术:Lucene.Net、多线程开发、爬虫技术、网页分析、正则表达式、Log4Net日志框架、Quartz.Net定时作业调度。 大型互联网开发技术:代码生成、网页静态化、基于JQuery的Web2.0页面开发、AJAX、SEO、网站调优、采集器、RSS/XML、网站防黑(防XSS攻击、防注入漏洞攻击、防CC攻击、防挂马、防盗链、敏感词过滤、广告帖智能过滤)、IIS管理与调优、流量分析、第三方脚本嵌入(广告、统计代码、内容联盟等)、图片服务器分离。 项目说明 如鹏网项目是已经上线三年的网站,日访问量最高20000人次,网址www.rupeng.com。本系统旧版本基于PHP、J2EE技术,由如鹏网开发者亲手操刀用.net重写新版本。系统分为前台Web界面、后台管理界面、站内搜索、监控客户端四个子系统。 大型互联网站由于访问量非常大,因此不是那些单纯用ASP.Net控件拖拽开发的开发人员能够开发的,也不是闭门造车能够造出来的,必须是在实际项目中经过无数访问者的使用、反馈、修改才能做出来的。搜房网、汽车之家等大型网站中用到的网站静态化、图片服务器分离、高性能缓存、HTML/JS压缩、CDN、CSS Sprite、负载均衡、Memcached、镜像服务器同步等问题不是那些随手写出来的所谓在线商城、电子商务系统所所能够涉及到的。 这个项目完全按照高访问量互联网站进行设计,通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.NetWinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网开发中涉及到的技术。 8、.Net新技术(Windows Phone、ASP.Net MVC)(6天) 项目说明 未来是移动互联网的时代,未来将是Windows Phone、Android、iphone三足鼎立的时代,掌握了移动开发的技能的人是就业市场的抢手货。微软推出的Windows Phone平台是微软在移动互联网时代的一个重量级产品,微软对于WindowsPhone7的推广力度非常大,因此很多公司也开始进行Windows Phone7产品的研发,2011年下半年Windows Phone7开发人员的需求将会出现井喷,为了帮助学员掌握移动3G开发技术,传智播客.Net班加入了Windows Phone开发课程,采用传智播客独创的WP7Simulator教学平台,学员可以做出一个基于云计算架构的LBS系统。点击查看传智播客独创WP7Simulator教学平台。 ASP.Net MVC是微软推出的区别于ASP.Net WebForm的Web开发新技术,由于ASP.Net MVC解决了ASP.Net WebForm的很多缺点,非常适合大型、中型项目的开发,一经推出就受到了.Net开发社区的追捧,很多.Net开发人员的职位要求中都提到了MVC,可见掌握ASP.Net MVC技术必将提升自己就业的砝码。 9、就业指导(2天) 项目说明 总结以往所学知识,讲解《传智播客.Net面试、笔试宝典》,介绍简历、笔试、面试等所需的知识和技巧。
### 回答1: 传智播客.net是一家非常有名的IT培训机构,第24期也是他们的一个培训班。该培训班是针对IT行业的人才进行的,主要是针对初学者和想要进一步提升自己技能的人。这个培训班主要包括基础知识学习、项目实战、以及职业规划等方面。 在常规课程中,学生将会学习Java编程语言、关系型数据库MySQL、Web框架等技术。他们还将进行项目实战,以便更好的嵌入所学知识并应用于实际开发中。此外,职业规划也是课程的一个重要部分,学生将会学习简历制作、面试技巧和职业发展等方面,以便更好的在今后的职业生涯中茁壮成长。 除了课堂教育外,传智播客.net还将为学生提供一些额外的服务,例如一对一辅导、职场精英分享、就业指导等等,以帮助学生更好地了解职业市场和职业生涯。这些服务可以帮助学生更好的应对日益激烈的招聘市场,并找到最适合自己的职业。总之,传智播客.net24期是一个非常综合的IT培训课程,适合初学者、技能提升者和想要更好的了解职业市场的人。 ### 回答2: 传智播客.net24期是一项专门指导编程初学者、帮助他们迅速掌握计算机编程技能的培训计划。作为一门行业领先的计算机编程培训课程,它拥有丰富的课程体系,包括从基础开始的Java编程、Web前端开发、移动App开发、Python编程、机器学习和数据挖掘等多个方向的培训。 除了它的丰富课程内容外,传智播客.net24期提供的教学方式也非常优质。根据学生的不同需求和学习进度,它为每个学员量身定制学习计划,以实现个性化教学。同时,它还使用一系列先进的教学工具和方法,如在线直播、课程讲解视频、在线交流平台以及教学实践活动等,来帮助学生更好地掌握编程技能。 传智播客.net24期的课程内容和教学方式都非常优秀,这也是它在业内受到广泛赞誉和好评的重要原因。很多学员在学完这个课程后,不仅能够掌握前沿的计算机编程技术,还能迅速找到理想的工作。因此,如果您也想快速入门计算机编程,那么传智播客.net24期是您不可错过的学习机会。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值