ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
转贴:MSDN访谈录C#编程之四
ROBERT HESS: 当作一个标准的For循环?



JEFFREY RICHTER:对,当作一个标准的For循环。因此有时到了最后,它所做工作比我当初想象的还要多。使用foreach是相当常见的,有了它实在是很爽。



ROBERT HESS:我猜您本来也应当在那里放置一个计数器,不过这会完全使foreach不起作用。



JEFFREY RICHTER: 是的,很正确。



ROBERT HESS:那么,您认为C#还另外具有什么样很酷特性,以让观众说,好,这就是我要选的语言?



JEFFREY RICHTER:嗯,正如Anders在前面指出,C#是完全基于组件的,在那里具有事件,具有接口,具有属性,它们都是一等公民,所以没有下滑杠,没有下滑杠属性等任何类似的东西。出身于C#的人应当熟悉异常处理,因为遇到错误时,就调用在基类库中的framework里的错误处理程序。因此我在屏幕上写了一小块代码,以示范如何进行适当的错误处理。我具有一个try语块,再强调一下,您应注意在try这个单词的前面没有下滑杠,因为在C#语言中它位于第一阶层。我new一个文件流对象,这是打开磁盘里的文件的一种方式。而在双引号里,我给出了我们希望打开的文件的路径名。

using System;

using System.IO;



public class App {

   public static void Main() {

      FileStream fs = null;

      try {

         fs = new FileStream(@"C:NotThere.txt", FileMode.Open);

      }

      catch (Exception e) {

         Console.WriteLine(e.Message);

      }

      finally {

         if (fs != null) fs.Close();

      }

   }

}





ROBERT HESS:等等,那是一个错误,是吗?



JEFFREY RICHTER:不,这正是我要指出的。因为C#有一个非常酷的特性,可以给字符串加上一个@符号的前缀,使我们转用原义字符串(verbatim  string,即真正的字符串,不加任何转义符),这里只允许使用单反斜杠“”而不是双反斜杠“\”。而长路径实在是一种十分常见的C++编程错误,人们以反斜杠代替双反斜杠,文件就不能正确地打开。在这种情况下应用加上"
",意思是要换行。所以,这实在是一个巧妙的特性。不象一个file stream,因为人们熟悉Win32的CreateFile函数,当该函数无法打开一个文件时就会返回无效的句柄值,或返回-1意味着失败。在.NET framework中,当我企图打开一个不存在的文件时,就会引发一个异常,所以我在这里设置了一个catch语块,设法捕获到异常,这是一个非常简单的catch语块,只把信息输出屏幕,看看可能做了些什么,接着我又设置了一个finally语块,在这里的代码要确保能执行,因此假如我在try语块中有很多行真正涉及到文件操作的代码,在打开文件之后,finally语块就会执行并在最后明确地关闭文件。这实在是一种很巧妙的特性,Win32甚至是C++也不曾拥有,它能够使try,catch和finally浑然一体,真正算起来,这种操作我们以前从未遇见过。



ROBERT HESS:我认为当应用程序变得越来越复杂时,人们在其中进行错误处理是相当重要的,当企图创建文件或进行类似的操作时,出错的机会可能会很多。尤其是使用其他人的对象和类似的东西时。

    那么,这是不是意味着在编写C#的应用程序时,您必须保证函数和方法都能正确地设置异常并抛出一个异常,以便人们可以捕获它?



JEFFREY RICHTER:嗯,绝对如此。良好的编程典范规定:当编写一个函数时,必须验证所有传递进来的参数,如果任何一个参数不合乎要求,就应当明确地引发一个异常,而在基类库中定义有大量的异常类,所以可以轻而易举地使用其中的一个。但是您同样也有能力定义自己的异常类,或许,要查找数据库中的、顾客(customer),却好象没有发现他们的名字,故可以创建自己的customer异常,并在代码里的某个地方引发它。



ROBERT HESS:或许会用类似customer的名字作为损坏的customer名……



JEFFREY RICHTER:是的,大概这样。如果它是"Robert",就是你一直想要引发的异常。





ROBERT HESS:那么,您认为C#作为一种编程语言将如何发展?当您的客户参加培训时您对他们有什么点拨,他们对此又有什么想法?



JEFFREY RICHTER:嗯,我真的认为它将获得巨大的动力。我说过,去年我一直专门用C#编程,偶尔也用C++,但现在却很少用了,而我相信许多VB程序员也将会转向此语言,因为C#更
 
 
本站关键词:
|东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间||东莞域名申请|东莞主机申请|东莞空间申请|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有