在C#中调用构造函数上的方法是一种好方法吗?

时间:2015-08-19 02:47:21

标签: c# asp.net .net asp.net-mvc

我注意到我一直在这么做(主要是因为我的所有方法都是非静态的):

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();
}

2 个答案:

答案 0 :(得分:1)

这样做很好,它不会导致任何问题。虽然有一个课程立即被抛弃是有问题的。也许GetAddresses应该是静态的?

但无论如何,这样做完全没问题。

答案 1 :(得分:0)

可以这样做, 但如果你想在创建一个人的对象后想要一些工作, 您可以在构造函数中创建一个事件并将其提升,然后在主类中的自己的事件args中拥有对象和一些自定义数据。 如果有用,我可以给你发送一个示例代码