zoukankan      html  css  js  c++  java
  • 你需要知道的隐式转换操作符

    首先大家来看下面这一行代码 

    XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";

    我们需要构造一个XNamespace对象,按一般的习惯,我们需要New(…..)对吧,但是为什么可以直接将一个字符串给赋值过去呢?

    其实这就是隐式转换操作符 ,请看下面的代码实现

    using System;
    
    namespace System.Xml.Linq
    {
        // 摘要:
        //     表示一个 XML 命名空间。无法继承此类。
        public sealed class XNamespace
        {
            // 摘要:
            //     返回一个指示 System.Xml.Linq.XNamespace 的两个实例是否相等的值。
            //
            // 参数:
            //   left:
            //     要比较的第一个 System.Xml.Linq.XNamespace。
            //
            //   right:
            //     要比较的第二个 System.Xml.Linq.XNamespace。
            //
            // 返回结果:
            //     一个 System.Boolean,指示 left 和 right 是否不等。
            public static bool operator !=(XNamespace left, XNamespace right);
            //
            // 摘要:
            //     将 System.Xml.Linq.XNamespace 对象与本地名进行组合来创建 System.Xml.Linq.XName。
            //
            // 参数:
            //   ns:
            //     一个包含命名空间的 System.Xml.Linq.XNamespace。
            //
            //   localName:
            //     一个包含本地名称的 System.String。
            //
            // 返回结果:
            //     从命名空间和本地名称构造的新 System.Xml.Linq.XName。
            public static XName operator +(XNamespace ns, string localName);
            //
            // 摘要:
            //     返回一个指示 System.Xml.Linq.XNamespace 的两个实例是否相等的值。
            //
            // 参数:
            //   left:
            //     要比较的第一个 System.Xml.Linq.XNamespace。
            //
            //   right:
            //     要比较的第二个 System.Xml.Linq.XNamespace。
            //
            // 返回结果:
            //     一个 System.Boolean,指示 left 和 right 是否相等。
            public static bool operator ==(XNamespace left, XNamespace right);
            //
            // 摘要:
            //     将包含统一资源标识符 (URI) 的字符串转换为 System.Xml.Linq.XNamespace。
            //
            // 参数:
            //   namespaceName:
            //     一个包含命名空间 URI 的 System.String。
            //
            // 返回结果:
            //     从 URI 字符串构造的 System.Xml.Linq.XNamespace。
            [CLSCompliant(false)]
            public static implicit operator XNamespace(string namespaceName);
    
            // 摘要:
            //     获取此命名空间的统一资源标识符 (URI)。
            //
            // 返回结果:
            //     一个包含命名空间 URI 的 System.String。
            public string NamespaceName { get; }
            //
            // 摘要:
            //     获取不与命名空间对应的 System.Xml.Linq.XNamespace 对象。
            //
            // 返回结果:
            //     不与命名空间对应的 System.Xml.Linq.XNamespace。
            public static XNamespace None { get; }
            //
            // 摘要:
            //     获取与 XML URI (http://www.w3.org/XML/1998/namespace) 对应的 System.Xml.Linq.XNamespace
            //     对象。
            //
            // 返回结果:
            //     与 XML URI (http://www.w3.org/XML/1998/namespace) 对应的 System.Xml.Linq.XNamespace。
            public static XNamespace Xml { get; }
            //
            // 摘要:
            //     获取与 xmlns URI (http://www.w3.org/2000/xmlns/) 对应的 System.Xml.Linq.XNamespace
            //     对象。
            //
            // 返回结果:
            //     与 xmlns URI (http://www.w3.org/2000/xmlns/) 对应的 System.Xml.Linq.XNamespace。
            public static XNamespace Xmlns { get; }
    
            // 摘要:
            //     确定指定的 System.Xml.Linq.XNamespace 是否等于当前的 System.Xml.Linq.XNamespace。
            //
            // 参数:
            //   obj:
            //     要与当前 System.Xml.Linq.XNamespace 进行比较的 System.Xml.Linq.XNamespace。
            //
            // 返回结果:
            //     一个 System.Boolean,指示指定的 System.Xml.Linq.XNamespace 是否等于当前的 System.Xml.Linq.XNamespace。
            public override bool Equals(object obj);
            //
            // 摘要:
            //     获取指定的统一资源标识符 (URI) 的 System.Xml.Linq.XNamespace。
            //
            // 参数:
            //   namespaceName:
            //     一个包含命名空间 URI 的 System.String。
            //
            // 返回结果:
            //     从指定的 URI 创建的 System.Xml.Linq.XNamespace。
            public static XNamespace Get(string namespaceName);
            //
            // 摘要:
            //     获取此 System.Xml.Linq.XNamespace 的哈希代码。
            //
            // 返回结果:
            //     一个 System.Int32,其中包含 System.Xml.Linq.XNamespace 的哈希代码。
            public override int GetHashCode();
            //
            // 摘要:
            //     返回从此 System.Xml.Linq.XNamespace 和指定的本地名称创建的 System.Xml.Linq.XName 对象。
            //
            // 参数:
            //   localName:
            //     一个包含本地名称的 System.String。
            //
            // 返回结果:
            //     从此 System.Xml.Linq.XNamespace 和指定的本地名称创建的 System.Xml.Linq.XName。
            public XName GetName(string localName);
            //
            // 摘要:
            //     返回此 System.Xml.Linq.XNamespace 的 URI。
            //
            // 返回结果:
            //     此 System.Xml.Linq.XNamespace 的 URI。
            public override string ToString();
        }
    }
    
  • 相关阅读:
    Asp.Net Web API 2第八课——Web API 2中的属性路由
    Asp.Net Web API 2第七课——Web API异常处理
    Asp.Net Web API 2第六课——Web API路由和动作选择
    Asp.Net Web API 2第五课——Web API路由
    开始学习python
    BMI 小程序 购物车
    深浅copy 文件操作
    字典 dict 集合set
    基本数据类型 (str,int,bool,tuple,)
    python 运算符
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1683932.html
Copyright © 2011-2022 走看看