新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → <展现 C#> (rainbow 翻译) - 前言 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 11793 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: <展现 C#> (rainbow 翻译) - 前言 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 <展现 C#> (rainbow 翻译) - 前言


    发信人: wuxq (很想好好休息), 信区: DotNET        
    标  题: <展现 C#> (rainbow 翻译) - 前言
    发信站: BBS 水木清华站 (Mon Apr 30 13:40:29 2001)

    前言
    0.1  提要
        欢迎阅读《展现 C#》(Presenting C#)。这本书是你提高企业编程语言的一条捷径
    。这种企业编程语言带有下一代编程语言服务运行时(NGWS Runtime):C#(发音"C shar
    p")。
        NGWS Runtime 是一个不仅管理执行代码、同时也提供使编程更加容易的动态环境。
    编译器产生受管代码以指向这种受管理执行环境。你获得跨平台语言集成、跨平台语言
    异常处理、增强安全性、版本控制、安排支持和查错服务。
        支持NGWS Runtime 的主要语言是C#。支持NGWS框架的很多程序是用C#写的,因此,
    在一些带有NGWS Runtime的编译器中,它的编译器可以被认为是非常经得起测试且是经
    过优化的。C#语言借鉴了C++,但是具备现代化和新增的类型安全——使C#成为企业解决
    方案的首选语言。
    0.2  谁应该读这本书
         如果你对编程很陌生,这本书不适合你。这本书企图让程序员解脱并使用C#,基于
    他们已经拥有的知识。《展现 C#》的目标瞄准了已经具有如C/C++、VB、Java或其它编
    程经验的程序员。
         如果你具有C++的背景,转向C#会很容易,但是,如果你精通于其它不同的语言,
    这本书也会耗掉你的一些日子。如果你有一点COM编程的知识,这本会更有趣,但会COM
    编程不再是必要的。
    0.3  这本书如何组织
         第一章  C#简介——这一章把你带到C#逛一回,同时回答了有关你应该考虑学习C
    #的问题。
         第二章  NGWS Runtime 的技术基础——介绍NGWS Runtime为运行的C#代码所提供
    的低层架构。
         第三章  第一个C#应用程序——创建真正第一个C#应用程序(否则它是什么呢?),
    它就是一个"Hello World"应用程序。
         第四章  C#类型——可以看到用在C#应用程序中的各种类型。探索值型和引用型的
    区别,还有如何加框和消框。
         第五章  类——C#功能真正强大的标志,它是具有类的面向对象的编程。你会学到
    好多好多的东西,如构造函数、析构函数、方法、属性、索引和事件等。
         第六章  控制语句——对应用程序实行流程控制。探索C#提供的各种选择和陈述语
    句。
         第七章  异常处理——获得了编写实现异常处理的应用程序技巧,拥有这种技巧,
    在NGWS Runtime世界,你是一个好的公民
         第八章  用C#写组件——用C#构建组件,因为支持NGWS Runtime,它可以被不同语
    言平台的客户使用。
         第九章   配置和安排——学到如何用C#有条件地进行编译工作,和如何为你的C#
    源码自动地创建文档。另外,这一章将介绍到NGWS的版本技术问题。
         第十章   用非受管代码交互操作——发现你如何使用C#内部的非受管代码,且非
    受管代码如何与你的C#组件一起交互操作。
         第十一章  C#代码查错——获得使用SDK查错工具的技巧,可以在应用程序中准确
    地找到错误并修改它们。
         第十二章  安全——探索NGWS Runtime的安全概念。学到代码访问安全性和基于角
    色的安全性。
    0.4 使用这本书你需要什么?
         从这本书的观点看,你所需要的就是下一代windows服务软件开发包(NGWS SDK)。
    尽管至少只要有NGWS Runtime 和C#编译器就可以,但当探索这些激动人心的新技术功能
    时,在一台机器上装有说明文件档和所有的SDK工具(包括debugger),将是一个极好的
    主意。
         这本书不需要你装在机器上的Visual Studio 7的任何工具。我仅建议你要有一个
    优秀的支持行数的程序编辑器,用以编辑C#源文件。
         ……
         (省略掉一些有关出版过程和表示感谢的段落)
    0.5 关于作者
         Christoph Wille,微软系统工程师(MCSE)、微软系统开发师(MCSD)、Netware网络
    管理员(CNA)和MCP-IT,作为一个网络咨询人员和程序员,特别精通Windows  DNA。微软
    认为他是ASP方面最有价值的人(MVP),他是和微软在一起使用早期的C#版本的少数开发
    者之一。
         Christoph 独自或参与了几本书的写作,包括Sams出版社的《自学ADO2.5  21天》
    、《自学ASP  24小时》、《自学MCSE TCP/IP 14天》和《MCSE 训练指南:SQL Server
    7管理》。
                                    第三章     第一个C#应用程序
    3.0   选择一个编辑器
        尽管我是一个顽固的Notepad狂,但这次我不建议用它编辑源码。原因是你正在与真
    正的编程语言打交道,使用Notepad编辑源码编译时可能产生大量的错误信息行(C++程序
    员知道我在说什么。)
        你有几种选择。可以重新配置你信任的老式Visual C++ 6.0,使它能够和C#源文件
    一起工作。第二种选择是使用新的Visual Studio 7。第三,你可以用任何第三方程序编
    辑器,最好要支持行数、色彩编码、工具集成和良好的搜索功能。CodeWright就是其中
    一个例子,如图3.1所示。
             图3.1 CodeWright 是你可以用于创建C#代码文件众多可能编辑器中的一个。

        当然,在所提到的编辑器中,没有一个对创建C#程序来说是必要的。用Notepad肯定
    可以编辑。但是,如果你考虑到要编写更大的项目,最好还是忍痛割爱吧。
    3.1  "Hello World" 代码
        讨论编辑器有点离题 ,让我们把话题转回到一个非常出名的小应用程序。这个最短
    的C#版本应用程序见清单3.1。把它存起来,文件名为 helloworld.cs,以便使你能按照
    说明,完成诸如编译应用程序等其它余下来的步骤。
            清单 3.1   最简单的 "Hello World "程序
             1: class HelloWorld
             2: {
             3:  public static void Main()
             4:  {
             5:   System.Console.WriteLine("Hello World");
             6:  }
             7: }
        在C#中,代码块(语句组)由大括弧({和})所括住。所以,甚至你以前没有C++的经验
    ,你也可以说出Main()方法就是HelloWorld 类语句的一部分,因为类被括在所定义的大
    括弧中。
        C#应用程序(可执行)的入口点就是 static Main 方法,它必须包含在一个类中。仅
    有一个类能使用该标志定义,除非你告诉编译器它应使用哪一个 Main 方法(否侧,会产
    生一个编译错误)。
        和C++相比,Main的第一个字母是大写的M,而不是你曾经使用过的小写字母。在这
    个方法中,你的程序开始并结束。方法中可以调用其它方法——如这个例子中,用于输
    出文本——或者创建对象并激活该方法。
        正如你所看到的,Main方法返回一个void类型。
            public static void Main()
        尽管看到这些语句时,C++程序员肯定会觉得似曾相识,但是其他程序员并不如此。
    首先,public 的访问标志告诉我们这个方法可以被任何程序访问,这是它被调用的必要
    条件。其次,static 意味着没有先创建类的实例也可以调用方法——你所要做的就是用
    类名调用方法。
            HelloWorld.Main();
        但是,我不赞成在Main方法中执行这行代码,递归会导致堆栈溢出。
        另一重要的方面是返回类型。对于方法Main,可选择void (意味着根本就没有返回
    值),或用int 为整型结果(应用程序返回的错误级别)。因此,两种可能的Main方法为:

            public static void Main()
            public static int Main()
        C++程序员会同样知道后面我要提到的——可以传给应用程序的命令行参数数组。如

            public static void Main(string[] args)
        我现在并不想详细地说明如何访问参数,但我想事先给C++程序员一个警告:和C++
    相比,应用程序路径不是这个数组的一部分。仅仅那些参数包含在这个数组中。
        在对Main方法并不简短的介绍之后,让我们把注意力集中到唯一真正的代码行——
    这行代码在屏幕上显示"Hello Wold"。
             System.Console.WriteLine("Hello World");
        假如不是由于有了System,大家会马上猜到WriteLine是Console 对象的一个静态方
    法。那么System代表什么呢? 它是包含Console对象的名字空间(范围),实际上并不是每
    次都在Console对象前加上名字空间的前缀,你可以象清单3.2所示范的那样,在应用程
    序中引入名字空间。
         清单3.2   在应用程序中引入名字空间
             1: using System;
             2:
             3: class HelloWorld
             4: {
             5:  public static void Main()
             6:  {
             7:   Console.WriteLine("Hello World");
             8:  }
             9: }
         所有你要做的就是给System名字空间加一个using指令。在这之后,不再需要规定
    名字空间,就可以使用它们的方法和属性了。NGWS 框架体系中有很多的名字空间,我只
    对巨大的名字空间池中的少数几个对象进行探讨。但在第八章 "用C#写组件"将介绍为你
    的对象创建自己的名字空间。
    3.2  编译应用程序
         由于NGWS  Runtime支持所有的编译器(VB、C++和C#),你不必买一个单独的开发工
    具用来把应用程序编译成IL(中间语言)。但是,如果你从没有用过命令行编译器编译过
    应用程序(仅懂得编译名,而没有熟记), 它还是你的首要选择。
        打开命令提示符并切换到存 helloworld.cs 的目录。敲入以下命令:
            csc helloworld.cs
        helloworld.cs 被编译并链接成hellworld.exe。因为源码没有错误(那当然!),C
    #编译器没有出错提示,在整个编译过程没有丝毫停顿。如图3.2所示。
         图3.2  使用命令行编译器 csc.exe 编译应用程序
         现在你已经准备好运行第一个真正用C#编写的应用程序。简单地在命令行上敲入h
    elloworld,输出结果为 "Hello World"。
        在继续往下介绍之前, 我想稍为想象一下第一个应用程序和一个编译器开关的使用

            csc /out:hello.exe helloworld.cs
        这个开关告诉编译器输出文件命名为hello.exe。虽然这不是什么绝招,但它是这本
    书中用到的未来编译器的基本功。
    3.3  输入和输出
         到目前为止,我仅仅演示了把简单的常量字符串输出到屏幕。尽管这本书只介绍了
    C#编程的概念而不介绍用户接口编程,但我需要让你迅速学会简单的屏幕输入和输出方
    法——相应于C的scanf 和 printf,或者C++的cin 和cout。我不能提供VB相应的函数,
    因为屏幕访问不是该核心语言的一部分。
         你只需要能够读用户的输入并提示一些信息给用户。清单3.3 说明如何读一个用户
    请求的名字输入,并显示一条已定制好的"Hello" 信息。
         Listing 3.3 从控制台读输入信息
             1: using System;
             2:
             3: class InputOutput
             4: {
             5:  public static void Main()
             6:  {
             7:   Console.Write("Please enter your name: ");
             8:   string strName = Console.ReadLine();
             9:   Console.WriteLine("Hello " + strName);
             10:  }
             11: }
        第7行使用Console对象的一个新方法用于提示文本信息给用户,它就是Write方法。
    它与WriteLine不同的地方在于它输出时不换行。我使用这种方法以便用户可以在信息提
    示的同一行输入名字。
        在用户输入他的名字后(并按回车键),ReadLine 方法读入了一个字符串变量。名字
    字符串连接到常量字符串"Hello",并用我们早已熟悉的WriteLine方法显示出来(见图3
    .2)。
        图3.3  编译和运行定制的Hello 应用程序
        你几乎已学完了NGWS框架必要的输入和输出功能。但是,你还需要为用户显示多个
    值。为用户写一个格式串。清单3.4展示一个例子。
        清单 3.4 使用不同的输出方法
            1: using System;
            2:
            3: class InputOutput
            4: {
            5:  public static void Main()
            6:  {
            7:   Console.Write("Please enter your name: ");
            8:   string strName = Console.ReadLine();
            9:   Console.WriteLine("Hello {0}",strName);
            10:  }
            11: }
        第9行包含了使用格式串的Console.WriteLine语句。格式串例子如下:
            "Hello {0}"
        {0}代替WriteLine方法的参数表中紧随格式串后的第一个变量。你可以用该技术格
    式化超过三个变量。
            Console.WriteLine("Hello {0} {1}, from {2}",
             strFirstname, strLastname, strCity);
        当然,并不仅限于只使用字符串变量。你可以使用任何类型,这些类型在后面的第
    四章 "C#类型"中有讨论。
    3.4 添加注释
        当写代码时,你应为代码写注释条文,解释实现的内容、变更史等。尽管你注释中
    提供的信息(如果有的话)是给你写的,但是你还是必须遵守写C#注释的方法。清单3.5  
    显示采用的两种不同的方式。
        清单3.5  给你的代码添加注释
             1: using System;
             2:
             3: class HelloWorld
             4: {
             5:  public static void Main()
             6:  {
             7:   // 这是单行注释
             8:   /* 这种注释
             9:   跨越多行 */
            10:   Console.WriteLine(/*"Hello World"*/);
            11:  }
            12: }
        "//" 符号用于单行注释。你可以用"//"注释当前所在行,或是跟在一个代码语句的
    后面:
            int nMyVar = 10; // 胡说八道
        所有在"//"后面的被认为是一条注释;所以,你可以同样用它们来注释一整行或一
    行源代码的部分。这种注释方式同C++中介绍的相似。
        如果你的注释跨越多行,必须使用"/* */"的字符组合。这种方式在C中有效。除了
    单行注释外,这种方式在C++和C#中还同样有效。因C/C++和C#都使用这种多行注释方式
    ,所以它们也使用相同的终结符。请看下列代码行:
            /* Console.WriteLine("Hello World"); */
        我使用"/* */"简单地注释一整行。现在我假定这一行是很长代码的一部分,而且我
    决定要暂时禁用一个程序块:
            /*
            ...
            /* Console.WriteLine("Hello World"); */
            ...
            */
        这个结构所存在的问题为: "Hello World"那一行后面的"*/"终止了始于第一行的
    "/*"的注释,余下的代码对编译器有效,你将看到一些有趣的出错信息。至少 最后的"
    */"被标志为归属错误。我只不过想提醒一下,让你了解这种错误。
    3.5小结
        在这一章中,你创建、编译并执行了第一个C#应用程序:著名的"Hello World"程序
    。我用这个短短的应用程序给你介绍有关Main方法,它是一个应用程序的入口点,也是
    出口点。这个方法可以没有返回值或返回一个整数错误级别。如果你的应用程序用参数
    调用,你可以(但不必要)读出并使用它们。
        在编译和测试应用程序后,你学到了更多的由Console对象提供的有关输入和输出的
    方法。对于学习C#而言,它们足以创建出有意义的控制台例子,但用户接口的大部分将
    是WFC、WinForms或者ASP+。

    --

    ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.215.13]
    返回上一页
    回到目录
    回到页首
    下一篇


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/9 2:25:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/19 20:22:38

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    156.250ms