if(input=="M")
{
process=new processDelegate(Muliply);
}
else
{
process=new processDelegate(Divide);
}
这是一个条件啊,Process new一次而已

解决方案 »

  1.   

    if
    else
    2者只能執行其一
    基本的啊
      

  2.   

    即使你都用了每new一次,就要开辟一块地址
      

  3.   

    new 的意思就是向内存申请一块专用区域
      

  4.   

    我來說說吧,看你的變量是什麼類型哦,如果是引用類型就要分配內存,如果是什類型就不要.還有  new可以在類的繼承里而隱藏基類的變量或方法什麼的,這和分配內存不分配扯不上關係的哦
    你自己看著辦吧,呵呵
      

  5.   

    不会的,因为if or else 中的分配的内存空间是不会影响它们外面的代码。
    而且,当执行完时,它所分配的内存空间会自动释放。
      

  6.   

    再說說吧:
    從你的代碼來看,其實你的代理只會執行一次,因為它在條件語句中的
    可以這樣說,你創建一次代理它就會給他分配一次內存地址給,由於同
    一可代理變量可以進行多個方法的引用,所以每次你用了new就重親給
    代理變量分配內存,先前的內存等候垃圾處理器來回收.還有一點就是
    代理變量的內存地址中存放的是它引用的方法在內存的地址.
    不知你有沒有明白,希望對你有所幫助.我討厭不結貼的人,真的,呵呵`
      

  7.   

    你们没有看到是3个new么?最后一个new会对process再次赋值。我想你们说的那种错误我是不会犯的吧。呵呵~~
    TO:xuguchu(南极星)你的意思是说再次new的时候会为其分配新的内存,而以前的内存会待候处理。是这个意思么?能不能将这方面的资料贴出来,供大家学习。等你回了我的话之后,我就回贴了。