Visual C#.NET2003 语言的改变

发表于:2007-06-17来源:作者:点击数: 标签:
下一页 1 2 3 4 Visual C# .NET 2003 版的 C# 语言中添加了两个新功能。第一,编译器现在支持 #line hidden 预处理器指令。 #line hidden 指令主要用于源代码生成器,它通知编译器忽略紧跟在 #line hidden 指令后面的所有代码行的调试程序信息,直到遇到下一

下一页 1 2 3 4 

   
  Visual C# .NET 2003 版的 C# 语言中添加了两个新功能。第一,编译器现在支持 #line hidden 预处理器指令。

#line hidden 指令主要用于源代码生成器,它通知编译器忽略紧跟在 #line hidden 指令后面的所有代码行的调试程序信息,直到遇到下一个 #line 指令为止(该 #line 指令的调试程序信息也一并被忽略),这里假设它们中间不会立即碰到下一个 #line hidden 预处理指令。在下面的示例中,编译器生成了 IL 代码,其中的 WriteLine 语句不包含调试信息。这样,调试应用程序的程序员将无法查看“隐藏”的代码并检查其中的内容:

  public class Customer
  {
   public static void Main()
   {
   MyClass c = new MyClass();
   c.ExecuteCommand();
   #line hidden
   Console.WriteLine("显示一些文字");
   Console.WriteLine("显示一些文字");
   Console.WriteLine("显示一些文字");
   #line
   c.ProcessCommand();
   c.Close();
   }
  }

  然而,#line hidden 指令并不隐藏编译器错误。当然,编译器仍然将代码编译到 IL 中,且代码仍旧执行;编译器只是禁止调试程序进入它的内容。 

  第二个 C# 新功能涉及 XML 注释,是根据 ECMA 标准添加的。C# 现在支持在使用“斜线和星号”符号(/* 和 */)编写的多行注释中添加 XML 注释。下面的 XML 注释在 2003 版的 C# 编译器中是合法的:  

  /**
  <summary>这是
  注释
  </summary>
  */

  此外,出于完整性的考虑(但实际上绝不推荐),程序员可以混合并匹配注释样式,同时仍然能够编写出有效的 XML 注释代码。这样,下面的这个注释声明现在也是合法的:

  /**
  <summary>这是
  注释
  */
  /// </summary>
  实现的改变

  2003 版的 C# 编译器和 2002 版也有微小的区别。在有些情况下,这些区别可能会导致代码无法编译,或导致其运行方式与应执行的方式大相径庭。

原文转自:http://www.ltesting.net