- 分部类型:可以在多个源文件中为一个类型编写代码。特别适用于部分代码是自动生成,而其他代部分的代码为手写类型。
- 静态类:对工具类进行整理,以便编译器能明白你是否在不恰当的地使用它们,并使你的意图更清晰。
- 独立的取值方法/赋值方法属性访问器:属性终于有了公有取值方法和私有赋值方法了!(这不是惟一的组合,不过这是最常见的组合)。
- 命名空间别名:在类型名称不惟一的情况下的一种解决方式。
- pragma指令:用于操作的特定编译器指令,如禁止对某一特殊代码段使用特定的警告信息。
- 固定大小的缓存区:在非安全代码中,可以更多地控制结构处理殊足的方式。
- InternalsVisibleToAttribute(友元程序集):跨越语言,框架和运行时的一个特性,在需要时能对选定的程序集进行更多的访问。
7.1分部类型
7.1.1 在多个文件中创建一个类型
partial class Example<TFirst, TSecond> : IEquatable<string> where TFirst : class { public bool Equals(string other) { return false; } } partial class Example<TFirst, TSecond> : EventArgs, IDisposable { public void Dispose() { } }
7.1.2分部类型的使用 XAML
7.1.3 C#3.0 独有的分部方法
partial class PartialMethodDemo { public PartialMethodDemo() { OnConstructorStart(); Console.WriteLine("Generated constructor"); OnConstructorEnd(); } partial void OnConstructorStart(); partial void OnConstructorEnd(); } partial class PartialMethodDemo { partial void OnConstructorEnd() { Console.WriteLine("Manual code"); } }
7.2静态类型
public sealed class NonStaticStringHelper C#1.0的工具类 { private NonStaticStringHelper() { } public static string Reverse(string input) { char[] chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); } }
public static class StaticStringHelper //C#2.0工具类 { public static string Reverse(string input) { char[] chars = input.ToCharArray(); Array.Reverse(chars); return new string(chars); } }
7.3独立的取值方法/赋值方法属性访问器
7.4 命名空间别名
7.4.1限定的命名空间别名
using System; using System.ComponentModel; using WebForms = System.Web.UI.WebControls; using WinForms = System.Windows.Forms; namespace Chapter07 { [Description("Listing 7.05")] class SimpleAliases { static void Main() { Console.WriteLine (typeof (WinForms.Button)); Console.WriteLine (typeof (WebForms.Button)); } } }
时间: 2024-10-29 01:02:48