我有一個應用程序使用異步CTP庫能夠使用async/await關鍵字,並且我知道C#的實際版本5.0默認具有此功能,並且它不是所有確切版本的異步CTP 。我的意思是說,例如在異步CTP中存在TaskEx並且在C#5.0中不存在,則爲Task。c#4.0,異步CTP和異步C#5.0兼容?
但是,由於這些差異,我想知道異步方法返回的Task對象是否相同。
在我的情況下,我有一個存儲庫訪問數據庫的接口。此刻的存儲庫是由使用C#4.0的類實現的,但它可以使用asyc CTP來返回任務並使用await keyowrd。但是在將來,我想使用其他使用C#5.0的類。
如果我的interace定義了一個返回任務的方法,我可以使用C#4.0的類和使用C#5.0的類來實現此接口嗎?或者在異步CTP和C#5.0中的Task對象中存在差異?
PD:我更正了C#的版本,我的意思是5,0而不是C#4.5。
PD2:似乎VS2012我可以使用Microsoft.Bcl.Async和Microsoft.CompilerServices.AsyncTargetingPack在目標是.NET 4.0的項目中使用asyn/await關鍵字。但我不知道它們之間的差別。
你的意思是[C#5.0](http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c)? – rae1
是的,我的意思是c#5.0和.NET 4.5。 –