About ExtendMethod

    /// <summary>
    
/// 忘记跟谁的博看到method(this interface interfaceName)这个形式的东西了
    
/// 好像是介绍多继承的
    
/// 今天找了找,弄明白了
    
/// </summary>
    
/// 


namespace Extend
{
    
//五金大仓库
    public static class Warehouse
    
{
        
//管道工才能拿我这里的东西----必须制定拿什么
        public static string GetTools(this AboutExtend.Program.Plumber p, string tool)
        
{
            
return tool;//ps:就不单写Tool接口和具体类了
        }

    }

}

namespace AboutExtend
{
    
using Extend;

    
public class Program
    
{
        
//管道工人----给我工具~我会干活
        public class Plumber
        
{
            
//我的名字
            public string name getset; }
            
//我的工具
            public string myTool{get;set;}

            
//我会修理管道
            public void RepairPipe()
            
{
       
                
if(myTool==null)
                
{
                    Console.WriteLine(
"我还没拿工具呢。");
                }

                
else
                
{
                    Console.WriteLine(
""+this.myTool+"开始干活");
                }

            }

        }


        
static void Main(string[] args)
        
{
            
//天空咔嚓一声巨响,水管工善良登场
            Plumber plumber = new Plumber();
            
//马里奥
            plumber.name = "Mario";
            
//直接去修理
            plumber.RepairPipe();
            Console.WriteLine(
"---------------拿扳子之后--------------");
            
//让他自己去仓库里拿个板子
            plumber.myTool = plumber.GetTools("扳子");
            
//再去修理
            plumber.RepairPipe();
            Console.Read();
        }

    }

}
posted @ 2009-06-23 18:16  安静的瞬间  阅读(224)  评论(0编辑  收藏  举报