亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#3.0實現延遲賦值示例

2020-01-24 02:50:28
字體:
來源:轉載
供稿:網友

延遲賦值主要有兩點:

1.一個參數可能或可能沒被賦值.

2.一個參數在一個函數中每次使用時可能被賦值.

如下面的這種情況:

復制代碼 代碼如下:

int Add(int x, int y)
{
    return (2 + 1) + (1);
}

使用Func<T>,我們輕松實現,看代碼:

復制代碼 代碼如下:

/// <summary>
/// LazyExpression
/// </summary>
/// <typeparam name="T">T</typeparam>
public class LazyExpression<T>
{
    Func<T> thunk;
    public LazyExpression(Func<T> Thunk)
    {
        thunk = Thunk;
    }
    public T Evaluate()
    {
        return thunk();
    }
}

/// <summary>
/// LazyBoolExpression
/// </summary>
public static class LazyBoolExpression
{
    public static bool And(LazyExpression<bool> LHS, LazyExpression<bool> RHS)
    {
        return LHS.Evaluate() && RHS.Evaluate();
    }
    public static bool Or(LazyExpression<bool> LHS, LazyExpression<bool> RHS)
    {
        return LHS.Evaluate() == true ? true : RHS.Evaluate();
    }
}

/// <summary>
/// LazyMemoizedExpression
/// </summary>
/// <typeparam name="T"></typeparam>
public class LazyMemoizedExpression<T>
{
    bool thunked;
    T value;
    Func<T> thunk;
    public LazyMemoizedExpression(Func<T> Thunk)
    {
        thunked = false;
        thunk = Thunk;
    }
    public T Evaluate()
    {
        if (!thunked)
        {
            value = thunk();
            thunked = true;
        }
        return value;
    }
}

LazyExpression<T>類實現了基本的延遲賦值,LazyMemoizedExpression<T>類實現了一次賦值,多次使用.
LazyBoolExpression實現邏輯表達式.

看UnitTest,一切就明白了

復制代碼 代碼如下:

///<summary>
///Laziestheexpressiontest.
///</summary>
[TestCase]
publicvoidLazyExpressionTest()
{
varlme1=newLazyExpression<int>(()=>2+1);
varlme2=newLazyExpression<int>(()=>1);
Assert.AreEqual(4,Add(lme1,lme2));
}

///<summary>
///Addsthespecifiedx.
///</summary>
///<paramname="x">Thex.</param>
///<paramname="y">They.</param>
///<returns>result</returns>
privateintAdd(LazyExpression<int>x,LazyExpression<int>y)
{
returnx.Evaluate()+y.Evaluate();
}

///<summary>
///Laziestheexpressionwithlogic.
///</summary>
[TestCase]
publicvoidLazyExpressionWithLogic()
{
varexp1=newLazyExpression<bool>(()=>true);
varexp2=newLazyExpression<bool>(()=>true||false);
if(LazyBoolExpression.And(exp1,exp2))
{
Console.WriteLine("lazyand");
}
if(LazyBoolExpression.Or(exp1,exp2))
{
Console.WriteLine("lazyor");
}
}

///<summary>
///Laziesthememoizedexpressiontest.
///</summary>
[TestCase]
publicvoidLazyMemoizedExpressionTest()
{
varlme1=newLazyMemoizedExpression<int>(()=>GetIntResult());
Assert.AreEqual(943,lme1.Evaluate());
Assert.AreEqual(943,lme1.Evaluate());
//output:
//1passed,0failed,0skipped,took2.80seconds(NUnit2.5).
}

///<summary>
///Comparestolazyexpressiontest.
///</summary>
[TestCase]
publicvoidCompareToLazyExpressionTest()
{
varlme1=newLazyExpression<int>(()=>GetIntResult());
Assert.AreEqual(943,lme1.Evaluate());
Assert.AreEqual(943,lme1.Evaluate());
//output:
//1passed,0failed,0skipped,took4.80seconds(NUnit2.5).
}

///<summary>
///Getstheintresult.
///</summary>
///<returns></returns>
privateintGetIntResult()
{
//currentthreadsleeptwosecond.
System.Threading.Thread.Sleep(2000);
return943;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热99视频在线观看| 久久久久久国产| 日本精品久久久久影院| 亚洲黄色av网站| 国产午夜精品全部视频在线播放| 久久精品99无色码中文字幕| 亚洲精品91美女久久久久久久| 韩剧1988免费观看全集| 中文字幕欧美精品日韩中文字幕| 国产精品盗摄久久久| 成人欧美一区二区三区黑人孕妇| 亚洲欧美制服中文字幕| 欧美激情第一页xxx| 国产偷亚洲偷欧美偷精品| 中文字幕亚洲一区在线观看| 国产精品久久久久aaaa九色| 国产日韩欧美另类| 日韩欧美精品网址| 欧美在线观看视频| 国产精品丝袜久久久久久高清| 日韩欧美在线网址| 欧美高清视频免费观看| 久久久久九九九九| 日韩中文理论片| 欧美综合激情网| 国产欧美日韩视频| 中文字幕亚洲一区在线观看| 欧美成人精品一区二区| 欧美在线精品免播放器视频| 亚洲色图校园春色| 91精品久久久久久久久久久久久久| 精品国产乱码久久久久久天美| 日韩在线视频网| 国产精品爽爽爽爽爽爽在线观看| 欧美诱惑福利视频| 成人久久精品视频| 亚洲精品综合久久中文字幕| 91精品视频在线| 久久综合久久美利坚合众国| 欧美激情精品久久久久久免费印度| 成人a免费视频| 成人亚洲欧美一区二区三区| 一区二区三区黄色| 成人黄色在线免费| 热久久免费视频精品| 国产亚洲一区二区精品| 亚洲人成网站色ww在线| 91久久夜色精品国产网站| 九九精品在线播放| 日韩欧美a级成人黄色| 亚洲色图五月天| 午夜精品久久久久久久白皮肤| 成人黄色生活片| 国产精品视频一| 国产精品男人的天堂| 富二代精品短视频| 69久久夜色精品国产69乱青草| 日韩精品视频免费专区在线播放| 久久久久国色av免费观看性色| 亚洲国产女人aaa毛片在线| 日韩免费观看网站| 久久久久久成人精品| 欧美精品在线网站| 九九热r在线视频精品| 成人亲热视频网站| 韩曰欧美视频免费观看| 成人午夜黄色影院| 中文字幕免费精品一区| 中文字幕国产亚洲| 成人高h视频在线| 亚洲人成网站777色婷婷| 精品久久久久久久大神国产| 亚洲欧美日本精品| 成人乱人伦精品视频在线观看| 欧美性xxxxx极品娇小| 91po在线观看91精品国产性色| 国产精品青草久久久久福利99| 国产精品日韩在线播放| 亚洲欧洲日产国产网站| 国内精品中文字幕| 国产精品福利在线观看网址| 亚洲色图日韩av| 亚洲视频777| 日韩中文字幕网站| 国产精品久久久久久久久粉嫩av| 美女999久久久精品视频| 国产精品高清网站| 国产91成人video| 亚洲人成网站色ww在线| 国产成人极品视频| 久久这里只有精品99| 成人免费视频xnxx.com| 在线精品国产欧美| 欧洲一区二区视频| 狠狠操狠狠色综合网| 久久人人97超碰精品888| 亚洲天堂开心观看| 日韩在线观看你懂的| 亚洲欧美综合区自拍另类| 欧美多人乱p欧美4p久久| 中文字幕欧美专区| 宅男66日本亚洲欧美视频| 欧美一级片久久久久久久| 亚洲天堂成人在线| 国产精品一区=区| 福利一区福利二区微拍刺激| 日韩中文在线中文网在线观看| 国产精品久久婷婷六月丁香| 久久久精品一区二区| 亚洲欧美日韩一区二区三区在线| 中日韩美女免费视频网站在线观看| 992tv成人免费影院| 最近中文字幕日韩精品| 国产美女久久精品| 亚洲精品色婷婷福利天堂| 欧美激情按摩在线| 久久天堂电影网| 国内精品伊人久久| 国产一区二区成人| 97国产精品免费视频| 26uuu另类亚洲欧美日本老年| 色综合久综合久久综合久鬼88| 91精品国产九九九久久久亚洲| 欧美wwwwww| 欧美精品aaa| 92版电视剧仙鹤神针在线观看| 亚洲人成电影网站| 亚洲国产第一页| 亚洲va久久久噜噜噜久久天堂| 国产xxx69麻豆国语对白| 日韩精品中文字幕在线观看| 国产一区二区三区丝袜| 国产一区二区日韩精品欧美精品| 久久精品视频网站| 亚洲欧美激情在线视频| 日韩欧美在线国产| 亚洲精品第一国产综合精品| 亲爱的老师9免费观看全集电视剧| 精品国产一区二区三区久久狼黑人| 国产va免费精品高清在线观看| 中文字幕亚洲激情| 国产一区二区三区在线视频| 精品视频中文字幕| 久久久久久噜噜噜久久久精品| 国产欧美日韩亚洲精品| 在线看片第一页欧美| 久久久久久久久中文字幕| 欧美老女人在线视频| 啊v视频在线一区二区三区| 一区二区欧美激情| 国产成人福利视频| 久久精品国产欧美亚洲人人爽| 91欧美视频网站| 国产成人精品久久二区二区91| 国产精品爱啪在线线免费观看| 91免费福利视频| 亚洲影视九九影院在线观看| 国产精品久久久久av免费| 日韩av影视在线| 国产精品夜间视频香蕉| 国产精品视频精品视频| 色偷偷av一区二区三区乱| 亚洲视频综合网| 国产精品久久精品|