zoukankan      html  css  js  c++  java
  • C#2.0锐利体验之杂项技术及未来发展学习笔记

         抽空闲的时间,看了李建忠老师讲的"C#2.0锐利体验---杂项技术,以及C#语言的未来发展"课程。对某些很小的知识点进行了回顾和总结。这里整理要点。

    一、命名空间别名限定符的引入

    C# 2.0允许我们使用命名空间别名限定符(::)来避免不同命名空间中类型名称冲突的问题。

    1.当使用命名空间别名限定符(::)时候,编译器可以确保这是一个只适用于"命名空间别名"的限定符,不会辨析为其他类型、或者成员限定符(.)

    2.关键字globar可以放在命名空间别名限定符(::)的左边,它使得编译器只去搜索那些所有的命名空间,而不会去搜索其他类型、或者成员。(命名空间的名字和类名相同引起冲突问题)

    3.尽可能地使用命名空间别名限定符(::),而减少使用点号(.)这样的通用限定符。

    二、#Pragma指示符

    代码
            [Obsolete]
            
    static void Foo() { }
            
    static void Main(string[] args)
            {
                
    #pragma warning disable 612
                Foo();
                
    #pragma warning restore 612
            }

     注意点:

    1.目前Pragma指示符只支持#Pragma warning

    2.#pragma warning disable可以禁掉任何编译器警告信息

    3.#pragma warning restore可以恢复被disable掉的任何编译器警告信息。

    4.可以在disable和restore后面跟上具体的警告代码号,从而来禁止或者恢复特定的警告信息。

    5.#pragma是一个编译器预处理功能,不影响任何代码运行机制。

    三、属性访问器的保护级别

    C# 2.0允许我们对一个属性的get和set访问器使用不同的访问级别修饰符:

    public string Name
    {
      
    get { return name; }
      
    private set { name = value; }
    }

    注意:

    1、属性访问器(get或set)上应用的访问修饰符必须"小于"(更严格),例如:Protected小于Public

    2、只能在一个属性访问器(get或set)上指定比属性上访问呢修饰符"更小"的访问呢修饰符。

    3、对于接口中属性的声明,不能给属性访问器(get或set)指定任何访问修饰符,只能默认为Public

    4、属性访问器保护级别的变化规则完全适用于C#的索引器(但是索引器不能申明为Static)。

    Best Regards,

    Charles Chen

    http://charles2008.cnblogs.com/

  • 相关阅读:
    简单工厂
    Asp.Net Catch的应用
    ADO和ADO.NET的区别
    PLSql语句学习(三)
    三层结构的B/S系统(收藏)
    MVC 模式
    利用.net反射动态调用指定程序集的中的方法
    .NET反射的简单示例
    ToString格式化
    HTML:关于位置的几个概念
  • 原文地址:https://www.cnblogs.com/Charles2008/p/1736543.html
Copyright © 2011-2022 走看看