zoukankan      html  css  js  c++  java
  • 扩展方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using OtherNamespce;
     
     
    namespace CurrentNamespace
    {     class Program     {         static void Main(string[] args)         {             Person p = new Person { Name = "xcl" };             p.Print();//错误	1	在以下方法或属性之间的调用不明确:             Console.Read();         }     }     //自定义类型     public class Person     {         public string Name { get; set; }     }     //当前命名空间下扩展方法的定义     public static class Extensionclass1   //扩展方法必须在一个非嵌套,非泛型 的静态类中定义     {                                     //至少有一个参数;//第一个参数必须加上this关键字,第一个参数类型也称为扩展类型,就是方法对这个类型进行扩展,         //第一个参数不能使用任何修饰符,如 :ref,out等修饰符         //第一个参数不能是指针类型         //扩展方法必须是静态的         //public static void Print(this Person per)         //{         //    Console.WriteLine("调用的是当前命名空间下的扩展方法输出,姓名为:{0}", per.Name);         //}     }     //又一个当期命名空间下的扩展方法定义     //public static class Extensionclass2     //{     //    //同一个命名空间下,定义了相同的Print扩展方法     //    public static void Print(this Person per)     //    {     //        Console.WriteLine("调用的是当期命名下的扩展方法输出,姓名为:{0}", per.Name);     //    }     //}
    }
     
    //怎么解决这个问题 ?
    //1. 同一个命名空间下,相同的扩展名方法名字改成为不同的;
    //2. 把相同的方法名字改到不同的命名空间;
    namespace OtherNamespce
    {     using CurrentNamespace;     public static class Extensionclass2     {         //同一个命名空间下,定义了两个相同的Print扩展方法         public static void Print(this Person per)         {             Console.WriteLine("调用的是 OtherNamespce 命名下的扩展方法输出,姓名为:{0}", per.Name);         }     }
    }
    
  • 相关阅读:
    一对一关联映射
    hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别
    Hibernate 延迟加载和立即加载
    hibernate inverse属性的作用
    Hibernate一对多关联
    Hibernate双向多对多关联
    SQL编程
    XML(DOM解析)
    UDP模式聊天
    Thread对象的yield(),wait(),notify(),notifyall()
  • 原文地址:https://www.cnblogs.com/xcl461330197/p/4983816.html
Copyright © 2011-2022 走看看