rex的博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
用C#的范型建立一个Factory模式的模板:
public struct FactoryConverter<A, B>
{
        
public static implicit operator A(FactoryConverter<A, B> conv)
        
{
            
return Activator.CreateInstance<A>();
        }


        
public static implicit operator B(FactoryConverter<A, B> conv)
        
{
            
return Activator.CreateInstance<B>();
        }

    }


    
public class Factory<A, B>
    
{
        
public FactoryConverter<A, B> Create()
        
{
            
return new FactoryConverter<A, B>();
        }

    }
使用的时候是这样的:
Factory<Foo, Bar> f = new Factory<Foo, Bar>();
Foo foo 
= f.Create();
Bar bar 
= f.Create();
编译器会做类型安全检测.
posted on 2006-07-09 10:46  rex  阅读(954)  评论(0编辑  收藏  举报