当前位置:首页 > C#教程 > C#高级

C# in depth (第七章 最后的一些特性)


  • 分部类型:可以在多个源文件中为一个类型编写代码。特别适用于部分代码是自动生成,而其他代部分的代码为手写类型。
  • 静态类:对工具类进行整理,以便编译器能明白你是否在不恰当的地使用它们,并使你的意图更清晰。
  • 独立的取值方法/赋值方法属性访问器:属性终于有了公有取值方法和私有赋值方法了!(这不是惟一的组合,不过这是最常见的组合)。
  • 命名空间别名:在类型名称不惟一的情况下的一种解决方式。
  • pragma指令:用于操作的特定编译器指令,如禁止对某一特殊代码段使用特定的警告信息。
  • 固定大小的缓存区:在非安全代码中,可以更多地控制结构处理殊足的方式。
  • internalsvisibletoattribute(友元程序集):跨越语言,框架和运行时的一个特性,在需要时能对选定的程序集进行更多的访问。

7.1分部类型

7.1.1 在多个文件中创建一个类型

            partial             class example<tfirst, tsecond>         : iequatable<string>
        where tfirst : class     {
        publicbool equals(string other)
        {
            returnfalse;
        }
    }partialclass example<tfirst, tsecond>         : eventargs, idisposable
    {
        publicvoid 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);
            returnnewstring(chars);
        }
    }
            public             static             class              staticstringhelper      //c#2.0工具类       
    {
                     public             static             string reverse(string input)
        {
            char[] chars = input.tochararray();
            array.reverse(chars);
            returnnewstring(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
    {        
        staticvoid main()
        {
            console.writeline (typeof (winforms.button));
            console.writeline (typeof (webforms.button));
        }
    }
}

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!