[英]What's the Initialize method used for and do I really need one?
我对构造函数中通常使用的Initialize
方法有点困惑。
为什么我不能把所有内容放在构造函数中,为什么下面的示例调用initialize方法?
private IAzureTable<Product> _productRepository;
public ProductService(string dataSourceID)
{
Initialize(dataSourceID);
}
private void Initialize(string dataSourceID)
{
this._productRepository = StorageHelper.GetTable<Product>(dataSourceID);
}
是否有通常使用的约定?
在这个例子中,我是否需要在Initialize
方法中Initialize
this
词?
为什么我不能把所有内容放在构造函数中,为什么下面的示例调用initialize方法?
你可以把它全部放在构造函数中。 在这个简单的例子中,你应该。 构造函数用于初始化对象。
有时你会遇到更复杂的事情:
Initialize
方法,因为您希望在构造的单独时间调用它。 这些代码都不是这种情况,所以我只是跳过它并将代码抛出到构造函数中。
是否有通常使用的约定?
不会。人们会做最容易阅读和理解的事情,无论需要编写最少的额外代码,以及什么导致代码重复最少。
但是,如果您将Initialize
方法Initialize
public,而不是从构造函数中调用它,我强烈建议您将其称为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;
}
}
您发布的是私有帮助方法 ,而不是类。
它被简单地使用,因此构造函数不会与初始化代码混杂在一起,以便为所做的事情提供一个好名字。
在您的具体示例中,它似乎没什么价值。
首先,如果将功能分离到自己的方法中,代码看起来是可读的。
其次,有时在某些情况下,您可能希望将initialize设置为public,以便开发人员可以在调用构造函数后使用它,因为您不希望代码在构造函数中运行。 如果您有一个表单并且希望在显示表单之前运行一些初始化代码,则通常就是这种情况。
1:使用初始化方法可能有两个方面:
在你的具体例子中,虽然它的意义不大。
2:在的情况下, this
:
再次在你的例子中它的意义不大。 它可以在基类和当前类的属性或方法的实现之间无差别地使用(即你使用base.
而不是this.
)
没有达成一致的标准,但“Initialize”是一个众所周知的单词,任何其他读取代码的人都可以立即识别,并告诉我所有我需要知道的方法的目的。 它可以被称为Bob()
但是它的帮助要小得多!
为什么我不能把所有东西放在构造函数中?
您可以,但将其分解为方法有助于使事物更具可读性。 当你的构造函数是一行代码时,它并不是必需的。
在这个例子中,我需要“this”这个词。 在Initialize方法?
在您发布的代码中没有,这是没有必要的。 为什么会这样? 可以通过工具自动生成,可能只是某人使用的约定或风格,可以从需要它的其他地方粘贴...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.