強型別ASP.NET資料繫結改進版 )

來源:互聯網
上載者:User

 

看了dragonpig寫的“教你30秒打造強型別ASP.NET資料繫結”,眼前一亮,真是太給力了,原來還可以這樣進行資料繫結。

立即小試了一下,並進行了一些改進,目前已經應用於Home中的新聞欄目。下面分享一下改進心得。

使用傳統的ASP.NET資料繫結方法,有兩個地方一直讓人不爽:

1) 缺少智能感知;

2) 強制類型轉換。

先回味一下傳統的ASP.NET資料繫結:

看看上面的ToString(),(DateTime)...

dragonpig的強型別綁定思路已經包含瞭解決這兩個問題的方法,但在他展示的代碼中,解決了第一個問題(智能感知),卻忽略了第二個問題(強制類型轉換),原始代碼如下:

protected virtual object ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var itm = GetDataItem();
return func((TEntity)itm);
}
protected object Stu<TResult>(Func<Student, TResult> func)
{
return ExpHelper<Student, TResult>(func);
}

我在使用中發現還要進行強制類型轉換,有點不爽,研究了一下,原來是object惹的禍,只要把上面代碼中的兩個object改為TResult,問題就解決了。

另外,我把Stu方法名改為了Eval,感覺這樣更友好。

上代碼:

protected virtual TREsult ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var item = base.GetDataItem();
return func((TEntity)item);
}
protected TResult Eval<TResult>(Func<NewsInfo, TResult> func)
{
return ExpHelper<NewsInfo, TResult>(func);
}

有了“強型別ASP.NET資料繫結”之後的日子真美好...

感謝dragonpig!你的分享太給力了!

看了dragonpig寫的“教你30秒打造強型別ASP.NET資料繫結”,眼前一亮,真是太給力了,原來還可以這樣進行資料繫結。

立即小試了一下,並進行了一些改進,目前已經應用於Home中的新聞欄目。下面分享一下改進心得。

使用傳統的ASP.NET資料繫結方法,有兩個地方一直讓人不爽:

1) 缺少智能感知;

2) 強制類型轉換。

先回味一下傳統的ASP.NET資料繫結:

看看上面的ToString(),(DateTime)...

dragonpig的強型別綁定思路已經包含瞭解決這兩個問題的方法,但在他展示的代碼中,解決了第一個問題(智能感知),卻忽略了第二個問題(強制類型轉換),原始代碼如下:

protected virtual object ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var itm = GetDataItem();
return func((TEntity)itm);
}
protected object Stu<TResult>(Func<Student, TResult> func)
{
return ExpHelper<Student, TResult>(func);
}

我在使用中發現還要進行強制類型轉換,有點不爽,研究了一下,原來是object惹的禍,只要把上面代碼中的兩個object改為TResult,問題就解決了。

另外,我把Stu方法名改為了Eval,感覺這樣更友好。

上代碼:

protected virtual TREsult ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var item = base.GetDataItem();
return func((TEntity)item);
}
protected TResult Eval<TResult>(Func<NewsInfo, TResult> func)
{
return ExpHelper<NewsInfo, TResult>(func);
}

有了“強型別ASP.NET資料繫結”之後的日子真美好...

感謝dragonpig!你的分享太給力了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.