教学思路C#之入门一 认识简单的C#结构-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

教学思路C#之入门一 认识简单的C#结构

简介:
 从今天开始我们要来学习微软.NET平台下的一门推广及发展迅速的语言C#,“#”的发音为英文sharp"啥普",意思是锐利的,微软的想法是:希望把这门语言发展成为最锐利的语言,有关微软.Net及框架的介绍,我会放到后面的课程来教授,原因是根据多次教学经验发现,在大家刚接触这门语言时,如果把它讲得过于理论化,比较难接受,也不好理解,所以本节课的课程安排会是从认识一个简单的C#程序入手。
           在开始本节课的正式学习前,我需要同学们学会用VS创建一个控制台的应用程序,下面的代码是创建后,编译器自动生成的代码,我们就从这里开始打开C#之门:
InBlock.gif 1using System; 
InBlock.gif 2//使用using关键字引入命名空间。如:using System;引入System命名空间 
InBlock.gif 3using System.Collections.Generic; 
InBlock.gif 4using System.Linq; 
InBlock.gif 5using System.Text; 
InBlock.gif 6 
InBlock.gif 7/**//*多行注释法,为了美观多半会写成如下效果*/ 
InBlock.gif 8 
InBlock.gif 9/**//*********************** 
InBlock.gif10 * 这个篇幅的代码内容: * 
InBlock.gif11 * 认识简单的程序结构和 * 
InBlock.gif12 * 三种注释方式                 * 
InBlock.gif13 ***********************/
 
InBlock.gif14//使用namespace关键字定义一个名为“控制台练习”的命名空间 
InBlock.gif15namespace 控制台练习 
InBlock.gif16{ 
InBlock.gif17        //使用class关键字定义一个名为“Program”的类 
InBlock.gif18        class Program 
InBlock.gif19        {        
InBlock.gif20                //程序的入口点Main方法 
InBlock.gif21                static void Main(string[] args) 
InBlock.gif22                {         
InBlock.gif23                } 
InBlock.gif24        } 
InBlock.gif25}
        请同学们看一下"//"后的文字,这些文字是我标注代码功能解释语句,注释后的语句,在代码中是不会被执行的,除了我们可以讲代码的意义或功能注释起来,增加程序代码的可读性外,我们还可以把暂时不用的,但是又不想删掉的代码先注释掉,因为注释掉了所以这段代码不会被执行,将来如果要用到,只要放开注释就可以了,避免了我们再做重写这段代码的无用功。
        注释的方式一共有3种,对于采用哪种方式,主要是看你想用注释实习哪种效果,这3种注释分别是:
  1.单行注释法"//": 就是我上面的代码第2行所采用的注释方式,一般只是对一行代码做出解释时会采用。
  2.多行注释法,使用"/*"开始注释,使用"*/"结束注释,一般用在对整段整篇幅代码进行解释时会采用,如第7行。
  3.XML注释法,在要注释的代码前输入三个"/",将编译器将会自动出现如下的带有"<>""</>":
InBlock.gif1                /**//// <summary> 
InBlock.gif2                /// XML的方法注释法: 
InBlock.gif3                /// 一般采用对方法和类的注释 
InBlock.gif4                /// </summary> 
InBlock.gif5                static void MethodName() 
InBlock.gif6                { 
InBlock.gif7                 
InBlock.gif8                }
       上面的代码是定义了一个名字叫做"MethodName"的方法,方法在C#语言中是将要实现某种功能的代码写在"{}"里如果你所写的程序要实现这个功能,就找到这种功能的代码写在哪个方法里,接着找到这个方法的名字,在程序的入口点(Main方法)中调用这个方法,从而找到这个方法内写得的功能代码,然后执行。现在给同学们简单的描述了方法的作用和使用,如果大家不理解,不用着急,随着书写代码量的增多和学习,很快我们就会理解我现在所说的白话方法理论。
        第3种用法同学们不需要现在掌握,只要熟练使用单行注释就可以了,而且我们要养成用注释的习惯增加代码的可读性,这样更可以利人利己呀!
        下面我们来学习一下一个简单的C#程序的基本结构
       第一份代码中我标注了一个简单的C#程序的结果,分别是:
using 引入命名空间;  //第一到第五行
定义一个命名空间       //第15行
{
           定义一个类          //第18行
          {
                   定义Main方法()  //第21行
                 {
                        功能代码语句(根据你实现的功能,决定功能代码语句的行数);  
                        /*每句代码表达一个具体功能意思的语句,
                           *语句之间也可以组合到一起共同完成一个或多个功能,
                           *每句代码使用";"代表结束,相当于告诉编译器遇到";"时,
                            *就视为完成一条功能语句的定义结束*/
                 }
           }
}
        在c#这门语言中,我们使用"{"开始作用范围,使用"}"结束作用范围,如第一段代码第15行定义了一个名为“控制台练习”的命名空间,16行"{"至25行"}"中的代码,我们认为是Program这个命名空间中作用的代码,也可以说第18行定义的一个“Program”类是“控制台练习”这个命名空间下的一种成员,21行定义的名字为“Main”的方法是“Program”类的一种类成员,也就是说,方法是应该定义在类里,类应该定义在命名空间里,我不会在第一节课就教授大家命名空间的具体作用,我们现在能学会谁被谁包含(包裹)谁就可以了。
        下面我出一道有关定义C#语法结构的题目,大家可以根据我之后给出的答案和注释对照你的代码。
1.在“控制台练习”的命名空间下,定义另一个类名为“LeiName”的类。
2.在“LeiName”类中,定义一个名字为“Jianfa”(减法)的方法。
3.在“Program”类中,定义一个名字为"Jiafa"(加法)的方法。
4采用XML的注释方式,解释"jiafa"的定义。
写代码前,请注意C#是区分大小写的语言,同时我们写代码所采用的编译器是有智能提示功能,而且语言中的关键字是用蓝色小写显示。
InBlock.gif 1 using System; 
InBlock.gif 2 using System.Collections.Generic; 
InBlock.gif 3 using System.Linq; 
InBlock.gif 4 using System.Text; 
InBlock.gif 5 namespace 控制台练习 
InBlock.gif 6 { 
InBlock.gif 7         //使用class关键字定义一个名为“Program”的类 
InBlock.gif 8         class Program 
InBlock.gif 9         {        
InBlock.gif10                 //程序的入口点Main方法 
InBlock.gif11                 static void Main(string[] args) 
InBlock.gif12                 {        
InBlock.gif13                         //如果想让加法功能运行,就应该在程序的入口点Main方法中被调用,注意要使用";"来表示调用的结束,调用的方式是方法的名字和方法后的"()",这里同学们要记住如果是一个方法调用时一定要加上(),同时要灌输给大家一个这样的思想,即如果是想完成一个(或一系列的)动作,就应该定义一个方法,在调用时如果是一个动作一定记得要在方法的名字后加上"()"。 
InBlock.gif14                         Jiafa(); 
InBlock.gif15                 } 
InBlock.gif16                 /// <summary> 
InBlock.gif17                 /// 定义了一个名字为Jiafa的方法:第3、4题 
InBlock.gif18                 /// </summary> 
InBlock.gif19                 static void Jiafa() 
InBlock.gif20                 { 
InBlock.gif21                    //实现加法的代码 
InBlock.gif22                 } 
InBlock.gif23         } 
InBlock.gif24         //在“控制台练习”的命名空间中,定义一个Leiname类:第1题 
InBlock.gif25         class Leiname 
InBlock.gif26         { 
InBlock.gif27                 //定义了一个名字为Jianfa的方法:第2题 
InBlock.gif28                 static void Jianfa() 
InBlock.gif29                 { 
InBlock.gif30                         //实现减法的代码 
InBlock.gif31                 } 
InBlock.gif32         } 
InBlock.gif33 }
        根据上面的代码,你应该注意到:
     第一题:Leiname类应该和Program类是平级的关系,应该在23行Program类结束}的后面,或是写在第7行命名空间"控制台练习"{开始后、第8行定义Program类开始前,表明类与类的平级关系,同时类一定要在33行命名空间结束的}里进行定义。
     第二题:定义一个名字叫"jianfa"的方法,按照第二段代码的定义方式,只是把jianfa替换了MethodName这个名字,同时应该在Leiname类的{}内部
     第三题:在Program类中定义一个方法时要与Main方法同样保持平级关系,因为他们都是Program类的类成员,只是程序是从Main方法开始执行,因为Main方法中调用了jiafa();所以程序执行后,jiafa方法内部的代码第21行是会执行的,但是jianfa却不会被执行,原因很简单,是因为Main方法没有调用他,所以jianfa内的代码第30行不会被执行。有关Main方法的具体介绍,我会放到下一章节进行介绍。
     第四题:在第17行我加入了这个方法的注释,请大家试一下如下的效果:当你把鼠标放置到Main方法中调用Jiafa方法的第14行代码,编译器会自动出现“定义了一个名字为Jiafa的方法:第3、4题”这一句提示。
      现在大家能明白第三种注释的独到的好处了吗?答案就是可以在调用采用XML注释过的这个方法时,出现你所定义这个方法的注释语句,如这个方法的作用、用法的注意要点等提示语句。试想一下,当我们成为一个编写大型程序的项目小组其中的一员,项目中需要实现的功能会非常多,这样就需要定义大量的方法来实现这些功能,如登录时判断密码必须是数字,这样小小的方法定义的多了,程序开发周期延长时,很多方法的特殊使用就会忘记,在调用时会出现不必要的麻烦,影响整体进度,或许你的团队中有个同事,在写这个项目中用户注册新用户的时候,同样需要密码也必须是数字这样的功能时,就可以直接调用你所写的方法,而不需要他自己重新书写,提高了工作的效率,如果你所写的方法如果采用了XML的注释方式,对于他也是一个友好的提示作用,这就是我先前所说的利人利己的原因!
       这节课说到现在对于什么是C#,程序的运行方式等实质性的问题一定是不明白的,今后的课程,我们会慢慢的教授给大家,但是在开始下一节的学习是,请大家一定要熟练地写出有关C#结构的简单定义代码,因为在我多次教学的过程中发现,学生们写了很多代码,但是应该把方法定义在哪里都搞不清楚,所以在我很早就已经调整了教学的顺序,将定义简单结构的课程作为开始篇章来学习,给学生灌输大局观的思想,体会流程的模式。
      下节课我们将要学习Main方法及使用控制台应用程序来学习C#语法。
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/185714如需转载请自行联系原作者

叶子文文

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: