传递新对象或对象引用

时间:2015-01-08 06:50:20

标签: c# object constructor reference asp.net-mvc-5

在C#中,(明确地说是MVC 5),我应该将新对象传递给构造函数还是对已经创建的对象的引用?

以下是我所指的代码:

1

TestDatabaseContext db = new TestDatabaseContext();
testObject = new TestObject(db);

2

testObject = new TestObject(new TestDatabaseContext());

上面两个代码示例是否实现了相同的结果?我应该支持一种方法吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

它完全没有任何区别。

1)如果在将数据传递给TestObject之前需要向db添加一些属性,那就太好了。

2)您可以使用Object Initializer

执行与#1中提到的相同的操作
testObject = new TestObject(new TestDatabaseContext{id=1, otherproperty=whatever});

同样的事情,没有区别

您只想以您的开发团队喜欢的方式进行操作。

答案 1 :(得分:0)

两者都相同..

如果要在将任何propertymember传递给函数之前进行分配,则可以使用1来保持代码整洁干净。但是,您也可以通过@prospector建议的方法执行相同的操作。

答案 2 :(得分:0)

如果

,它会有所作为

TestDatabaseContext db = new TestDatabaseContext();

不在同一个代码块(Method)中

testObject = new TestObject(db);

使用1,您将再次使用相同的db实例(例如,如果它在构造函数中设置,并且您在方法中设置testObject变量),则每次设置{时为2 {1}},将使用testObject的新实例。

如果你想重用TestDatabaseContext实例,如果这两行在同一个方法/构造函数中,它取决于你......它没有任何区别,否则就会有所不同。