3 回答

TA貢獻1829條經驗 獲得超6個贊
具有大量參數的構造函數允許某人實例化一個對象并在一次構造函數調用中設置所有屬性,這通常非常方便:
var request = new Request(buildingId, adId, eventDate, eventStart, eventEnd, timeOfApproval);
但是,一旦定義了自己的構造函數,就不再有自動生成的默認構造函數(它允許您創建不帶任何參數的對象),因此必須手動定義。
var request = new Request();
// Later...
request.BuildingId = buildingId;
request.AdId = adId;
request.EventDate = eventDate;
//...etc.
因此這個類有兩個構造函數。

TA貢獻1802條經驗 獲得超10個贊
如果您使用實體框架,則必須有一個無參數構造函數。當實體框架從數據庫查詢映射到實體時,使用默認構造函數實例化實體的新實例,以使用從數據庫檢索的數據填充它。
因此,當您擁有第二個時,您可以創建一個實例并設置所有屬性
new Request(buildingId, adId, ...);
您需要為 EF 添加第一個(無參數構造函數)。它允許創建一個實例并僅設置您需要的屬性(或不設置任何屬性),因為所有屬性都有公共設置器
new Request
{
BuildingId = buildingId,
AdId = adId,
...
}
- 3 回答
- 0 關注
- 164 瀏覽
添加回答
舉報