簡體   English   中英

在C#中的構造函數上調用方法是一種好方法嗎?

[英]Is it a good approach to call a method on a constructor in C#?

我注意到我已經做了很多(主要是因為我所有的方法都是非靜態的):

var person = new Person();
var addresses = person.GetAddresses();

很多時候,我只需要在其他方法中調用一次該方法即可。 我注意到我可以這樣做:

var addresses = new Person().GetAddresses();

這樣有什么問題嗎? 對於我來說,打字似乎少了很多。 例如,如果我想用地址加載模型,我可以這樣做:

public ActionResult HelloWorld() {
    var model = new MyModel { Addresses = new Person().GetAddresses() };
    return View(model);
}

你們有什么感想?

順便說一句,我的方法是非靜態的,因為我正在使用存儲庫。 我的課是這樣設置的:

private IMyRepository _myRepository = new MyRepository();

Person () {
    // initialize properties
}

// Constructor for unit testing...
Person (IMyRepository repository) : this() {
   _myRepository = repository;
}

public GetAddresses() {
    return _myRepository.GetAddresses();
}

這樣做很好,不會造成任何問題。 雖然有一個類被立即丟棄是可疑的。 也許GetAddresses應該是靜態的?

但無論如何,這是完全可以的。

這樣做是可以的,但是如果您要在創建人對象后立即進行一些工作,則可以創建一個事件並在構造函數中引發它,然后在您自己的主事件中將對象和一些自定義數據包含在自己的事件參數中類。 如果有幫助,我可以給您發送示例代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM