第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.NET中的“閉包”是什么?

.NET中的“閉包”是什么?

holdtom 2019-06-10 21:00:00
.NET中的“閉包”是什么?什么是封閉?我們在.NET中有它們嗎?如果它們確實存在于.NET中,那么請?zhí)峁┮粋€代碼片段(最好是在C#中)來解釋它嗎?編輯:我經(jīng)歷了喬恩·斯基特的文章了解什么是閉包以及如何在.NET中使用它們。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

我有過一篇關(guān)于這個主題的文章..(它有很多例子。)

從本質(zhì)上說,閉包是一個代碼塊,可以在以后執(zhí)行,但它維護最初創(chuàng)建它的環(huán)境-也就是說,即使在該方法完成執(zhí)行之后,它仍然可以使用創(chuàng)建它的方法的局部變量等。

閉包的一般特性是通過匿名方法和lambda表達式在C#中實現(xiàn)的。

下面是一個使用匿名方法的示例:

using System;class Test{
    static void Main()
    {
        Action action = CreateAction();
        action();
        action();
    }

    static Action CreateAction()
    {
        int counter = 0;
        return delegate
        {
            // Yes, it could be done in one statement; 
            // but it is clearer like this.
            counter++;
            Console.WriteLine("counter={0}", counter);
        };
    }}

產(chǎn)出:

counter=1
counter=2

在這里,我們可以看到CreateAction返回的操作仍然可以訪問計數(shù)器變量,并且確實可以增加它,即使CreateAction本身已經(jīng)完成。


查看完整回答
反對 回復(fù) 2019-06-10
  • 3 回答
  • 0 關(guān)注
  • 581 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號