2010-07-08 30 views
1

我創建了一個API包裝稱爲Chargify.NET,我開始看到一個模式開發可能通過針對.NET 4如何讓我的庫變得簡單但針對不同的框架?

要解決的問題是,因爲他們提高了API,我需要創造出更多,更多的重載函數來處理一個特定的動作(在這種情況下創建一個訂閱)。現在,我有很多(我認爲太多)重載了CreateSubscription函數,並且很難管理不同的簽名。

是否有可能(和/或建議)針對.NET 4構建庫並使用可選參數,並希望庫的用戶可以使用.NET 4庫?還是應該繼續沿着我與3.5搭配的道路前進?或者以某種方式瞄準兩者?

需要一些關於此的討論..

回答

1

可選參數在4.0之前已完全得到.NET的支持。但是,他們最近才從C#獲得語言支持。請記住,可選參數不需要CLS兼容語言完全支持 - 編譯器允許忽略您提供的默認值。

1

真的沒有正確的答案。如果你開始使用.NET 4的特性,你可能只想瞄準.NET 4,因爲試圖定位兩者會限制你舊的特性(意味着沒有升級的理由)或者需要2個代碼路徑(對維護不利) 。

使用.NET 4將你的目標市場限制在那些人使用.NET 4這真是你來決定是否額外的靈活性和功能附帶的新功能,以及是否簡化的API(即:可選參數功能)是值得限制你的觀衆。

如果您的受衆是商業商店,這可能是一個大問題 - 如果您的目標用戶是小型開發人員或主要是其他開源開發人員 - 他們可能會更願意升級到.NET 4以使用你的包裝,如果它是必需的。

+0

它是需要.NET版本的社區的開源API包裝器,所以我不確定用戶是否願意轉換。它被用在許多已有的項目以及新的項目中,所以這可能成爲他們的一個問題。 – Kori 2010-07-13 13:36:42

0

只是讓你知道的太多,當C#編譯器編譯程序和程序使用的可選參數,所有的編譯器是替代重載函數的可選參數。所以你可以通過切換到可選參數來獲得速度或代碼減少的好處。

+0

速度不是一個真正的問題,但感謝提醒。我寧願編譯器完全重載我的函數,而不是寫我。 /懶 – Kori 2010-07-13 13:34:16

相關問題