Sam*_*tar 9 c# constructor initialization
我Initialize
对构造函数中通常使用的方法有点困惑.
为什么我不能把所有内容放在构造函数中,为什么下面的示例调用initialize方法?
private IAzureTable<Product> _productRepository;
public ProductService(string dataSourceID)
{
Initialize(dataSourceID);
}
private void Initialize(string dataSourceID)
{
this._productRepository = StorageHelper.GetTable<Product>(dataSourceID);
}
Run Code Online (Sandbox Code Playgroud)
是否有通常使用的约定?
在这个例子中,我需要这个词this
的Initialize
方法是什么?
Mer*_*ham 11
为什么我不能把所有内容放在构造函数中,为什么下面的示例调用initialize方法?
你可以把它全部放在构造函数中.在这个简单的例子中,你应该.构造函数用于初始化对象.
有时你会遇到更复杂的事情:
Initialize
方法,因为你想在一个单独的时间从构造中调用它.这些代码都不是这种情况,所以我只是跳过它并将代码抛出到构造函数中.
是否有通常使用的约定?
不会.人们会做最容易阅读和理解的事情,无论需要编写最少的额外代码,以及什么导致代码重复最少.
但是,如果你将Initialize
方法公之于众,而不是从构造函数中调用它,我强烈建议你调用它Initialize
.将其设计为仅调用一次.
在这个例子中,我需要"this"这个词.在Initialize方法?
不可以.this
除非您有另一个具有相同名称的本地变量,否则您永远不需要用来访问类成员.这是一个案例:
public class Something
{
private string someValue;
public class Something(string someValue)
{
// must use "this" to access the member variable,
// because a local variable has the same name
this.someValue = someValue;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13254 次 |
最近记录: |