6.3.2 在 c# 中處理計畫
在 c# 中,我們將構建 mapschedule 方法,類似於 f# 中的 mapschedule 函式。再次,這將有兩個引數:乙個用於計算新日期的函式,和原先計畫。因為我們將在 c# 中處理可選值,使用 switch 塊和 tag 屬性,正如在第 5 章看到的一樣。清單6 .9顯示了完整的實現。
listing 6.9 map operation for schedule type (c#)
public static schedule mapschedule
(this schedule schedule, func reschedulefunc)
}該方法提供了對每個可能的表示了乙個分支,並在每個分支中返回乙個新值。當選項攜帶乙個可以處理的日期(once 和 repeatedly),它首先把這個引數值轉換為相應的型別,然後,使用 reschedulefunc 引數值去計算新的日期。
該方法實現為在 scheduleutils 類的內部擴充套件方法(為了簡單起見,清單中未包括這個類的宣告)。這意味著,我們可以把它,作為乙個靜態方法,但是,在 schedule 類的任何例項上使用點表示法,也更具可讀性。以下**段顯示了如何把列表中每個計畫推遲一周:
schedules.select(schedule =>
schedule.mapschedule(dt => dt.adddays(7.0)) )
這是類似於我們前面的 f# **。我們使用 linq 的 select 方法(代替 list.map 函式),為原來列表中的每個計畫,去計算新的計畫。在 lambda 函式內 ,在每個原來的計畫上,呼叫 mapschedule,向它傳遞計算新日期的操作。
當我們有幾個類似的要執行的操作時,直接使用這個計畫型別,可能是十分乏味,因為,我們必須為每個操作,多次提供相同的展開和包裝**。在本節中,我們看到乙個精心設計的高階函式,可以簡化處理很多值。現在,讓我們看一下寫高階函式,來處理另乙個可選值,我們在第 5 章中介紹過的 選項(option)型別。
在Magento中設定計畫任務
cron是乙個重要的實用程式,可讓您以一定的定期間隔執行指令碼。對於基於web的應用程式,它也已成為重要的方面。cron對 有用的方法有很多,從傳送常規的新聞郵件到與第三方系統同步資料庫。您還可以使用cron清理後端儲存,以提高應用程式的整體效能。magento像其他幾個實用程式一樣,在核心本身中支...
在PHP中處理日期
有許多話題論壇又來了,話題很多人常常有困難。其中乙個問題是如何處理日期,將其轉換成不同的格式,時區問題,等等。本教程將試 決的許多常見問題與日期和時間相關的問題。包括如何在php中處理日期之前,我想談一下應該如何日期儲存在乙個資料庫中。具體我要談談mysql。因為這就是我最的經驗。也有其他dbms設...
在C 事件處理中靈活應用泛型
在.net 1.1中處理事件時很麻煩的事情。比如建立下面這個類 serializable public class logentry set string message 事件內容 public string message set 等你需要把logentry當成引數傳遞時,就需要建立兩個新的型別l...