2013-01-15 34 views
0

我注意到許多可以使用適用於.Net的AWS開發工具包創建的請求對象都帶有.With()方法以及可以直接設置的公共屬性。亞馬遜網絡服務.Net SDK使用.With方法

我的問題是有沒有理由使用,而不是隻設置屬性即。隨着方法:

var listQueuesRequest = new ListQueuesRequest().WithQueueNamePrefix(queueNamePrefix); 

var listQueuesRequest = new ListQueuesRequest() { 
    QueueNamePrefix = queueNamePrefix 
}; 

回答

4

這就是所謂的Method chaining起源主要是從Java編程風格編程以創建一個Fluent interface

WithQueueNamePrefix()方法將返回相同的ListQueuesRequest對象,以便您可以立即在同一對象上繼續「鏈接」更多的語句。這個想法是,這提高了可讀性和源代碼的數量,雖然不是每個人都同意。

+1

謝謝,這是有道理的。 –

+1

流暢的setter是C#中有對象初始化器之前的保留。 –