在C# 2.0上写另外一种语言来创建对象

创建对象有很多种方式,可以用工厂,可以用容器装配。所以不在乎再多一种啦。。。在C#上写了一种古怪的创建对象的方式,给大家kk。

首先,这是配置代码。意思是说在Lily的宇宙中(每个人都有一个小宇宙,圣斗士。。。),她的Boy是tom,也就是我的眼中只有你。相应的在Lucy的眼中只有joy。

Tom tom  =  Void.GiveMe < Tom > ();
Joy joy 
=  Void.GiveMe < Joy > ();
Void.UniverseOf
< Lily > ().Exist(tom);
Void.UniverseOf
< Lucy > ().Exist(joy);

然后是创建两个女孩子的代码:

Lily lily  =  Void.GiveMe < Lily > ();
lily.Kiss();
Lucy lucy 
=  Void.GiveMe < Lucy > ();
lucy.Kiss();

运行这段代码就可以看到少儿不宜的场景了。。。:

Lily is kissing Tom
Lucy is kissing Joy

产生这样的结果的原因是:

public   abstract   class  Girl : God
{
    
public   abstract   string  Name {  get ; }
    
public   void  Kiss()
    {
        Boy boy 
=  GiveMe < Boy > ();
        Console.WriteLine(
" {0} is kissing {1} " , Name, boy.Name);
    }
}

Girl的男朋友从哪里来的?偷来的?抢来的?骗来的?。。。
GiveMe是哪里来的方法?它是上帝的安排啊:

public   abstract   class  God
{
    
protected   abstract  T GiveMe < T > ();
}

旁白:其实本来没有神,每个人都是神。。。
上帝怎么实现GiveMe的呢?这就是Void关心的事情了。因为女孩子们是这么创建的:

Lily lily  =  Void.GiveMe < Lily > ();
Lucy lucy 
=  Void.GiveMe < Lucy > ();

所以说,这根本就是一个圈。。。因为我要做的其实是完全废弃标准的new和构造函数,采用自己的方式来创建和初始化对象,所以我不把这个叫做某某框架,独立使用也没有价值,它其实是一种语言。这种语言在后面我会用来干一些fancy的事情,但是还没想好怎么弄。。。

转载于:https://www.cnblogs.com/taowen/archive/2007/04/27/730184.html

微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值