您现在的位置是: 软件 > 开发者网络 > 微软开发专栏 > 技术专题 > 正文


-打开闪烁的新世界:体验Flash MX
-文字在平面设计中的运用
-Visual C++多媒体及图形、图像处理
-你会用3D Flash Animator吗?

锋利的新语言:C#提供了C++的功能和Visual Basic的简单性
2002-04-04· · ··Microsoft

1 2 3 4 5  下一页

  本文假定你已经熟悉了C++和COM+。

  摘要 很多开发人员希望有一种语言象VB那样易于写、读,和维护,但仍要能够提供C++那样的强大功能和灵活性。对于这些开发者来说,新的C#语言正是他们想要的。微软为C#构建了类型安全、碎片收集,简单地类型声明,版本化和扩展性支持,及其它特性,使得开发解决方案更快更容易,特别是对于COM+和Web服务。本文让你补步了解C#语言,在不远的将来你将会学到它的更多知识。

  也许最近你也读到过报社关于微软正在开发的新编程语言的评论。现在该语言已经出现了。C#,读作"C sharp",是一个新的编程语言,它使C和C++程序员能很容易地创建COM+程序。另外,C#从开始构建时就要使程序易于编写和维护。这有点象将所有Visual Basic?优秀的开发人员增加到C++开发人员中,而同时消除C和C++的神密感。

  C#被认为是Microsoft?为企业计算编写COM+和基于Windows ?程序的最优秀的语言。然而,你不必将现有C或C++代码移植到C#中。如果你喜欢C#的新特性--很有可能你会--你可以将你的思维移植过来。简单看一下,C++是一个强大的语言,但它并不能总是有效。我相当专业地使用过Visual Basic 和C++,很快我就问自己为什么要为C++的每个类实现一个析构函数。来吧--你是一个智能语言。Visual C++?甚至拥有IntelliSense?。跟我清理一下。如果你喜欢C或C++,但有时我的确认为喜欢,C#是为你提供的。

  C#主要的设计目标是简单性而不是纯粹的强大。你放弃一点处理能力,但作为回报你得到了更酷的东西,如类型安全性和自动碎片收集。C#可以使代码整体相当稳定,更具有生产率,从长远观点来说,这意味着不仅仅弥补了丢失的功能。C#为程序员提供了一些关键特性:



  简单

  在C++语言中最令人恼火的事情是什么呢?必须可记住的是何时使用->指针指示器,何时为类成员使用::,何时使用点操作符。并且编译器知道你什么时候错了,对吗?它甚至会告诉你你错了!如果有原因使这些情况不挨骂,那么就是我错看它了。
  C#认识到了C++这种令人厌烦的编程生活,并对它进行了简化。在C#中,每个事物都用点表示。不论你查看成员,类,名称空间,引用,或不论你有什么,你都不必跟踪所需要使用的操作符。
  OK,那么在C和C++中第二个让人恼火的是什么呢?是要确切检查出正在使用什么数据类型。在C#中,一个宽字节字符不再是wchar_t,而是一个char。64位整型是一个long ,而不是__int64。Char仍是一个char。没有其它char, unsigned char, signed char, 或 wchar_t需要跟踪。本文稍后将对数据类型作进一步讨论。
  运行C或C++的第三个令人烦的问题是整型可用于布尔型,当你对=和==产生混淆时,将引起分配错误。C#区分了这两种类型,提供了一个独立的布尔类型来解决这个问题。一个布尔型可以是真或假,但不能转换为其它类型。相似的,一个整型或对象引用不能被测真或假--它必须与0(或在引用中与NULL)作比较。如果你的C++代码象下面这样:

  int i;
  if (i) . . .

  将转换为C#会象下面这样:

  int i;
  if (i != 0) . . .

  另一个程序友好特性是对C++中switch语句工作方式的改进。在C++中,你可以编写一个switch语句,然后跟着是一连串的case语句。例如,这段代码:

switch (i)
{
  case 1:
    FunctionA();

  case 2:
    FunctionB();
    Break;
}

  如果I等于1,将会调用FunctionA 和 FunctionB。C#的工作方式类似于Visual Basic,在每个case语句前加一个隐含的break。如果你的确想让case语句继续下去,你可以在C#中重写switch块,象下面这样:

switch (i)
{
  case 1:
    FunctionA();
    goto case 2;

  case 2:
    FunctionB();
    Break;
}

1 2 3 4 5  下一页

■ 相关内容
 为你的网络服务制作文档
 .Net体系结构指导
 .Net开发平台(下)
 .Net开发平台(上)
 IBM和微软在.Net和Java上分歧严重
 .Net崩溃 微软安全缺陷何时了?
 .Net平台Windows Forms程序设计简介
 微软在Comdex将发布Windows .Net测试版
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!