在C#中,(明确地说是MVC 5),我应该将新对象传递给构造函数还是对已经创建的对象的引用?
以下是我所指的代码:
1
TestDatabaseContext db = new TestDatabaseContext();
testObject = new TestObject(db);
或
2
testObject = new TestObject(new TestDatabaseContext());
上面两个代码示例是否实现了相同的结果?我应该支持一种方法吗?
提前致谢。
答案 0 :(得分:1)
它完全没有任何区别。
1)如果在将数据传递给TestObject之前需要向db添加一些属性,那就太好了。
2)您可以使用Object Initializer
执行与#1中提到的相同的操作testObject = new TestObject(new TestDatabaseContext{id=1, otherproperty=whatever});
同样的事情,没有区别
您只想以您的开发团队喜欢的方式进行操作。
答案 1 :(得分:0)
两者都相同..
如果要在将任何property
或member
传递给函数之前进行分配,则可以使用1
来保持代码整洁干净。但是,您也可以通过@prospector建议的方法执行相同的操作。
答案 2 :(得分:0)
如果
,它会有所作为 TestDatabaseContext db = new TestDatabaseContext();
与
不在同一个代码块(Method)中 testObject = new TestObject(db);
使用1,您将再次使用相同的db
实例(例如,如果它在构造函数中设置,并且您在方法中设置testObject
变量),则每次设置{时为2 {1}},将使用testObject
的新实例。
如果你想重用TestDatabaseContext
实例,如果这两行在同一个方法/构造函数中,它取决于你......它没有任何区别,否则就会有所不同。