【发布时间】:2013-07-02 14:47:13
【问题描述】:
我先举一两个例子。采取以下示例类:
class Sample
{
private object _someObject;
public Sample(object someobject)
{
_someObject = someobject;
// If I then wanted to pass someobject to a method within the constructor,
// is it better to use the field version or the parameter version. Example:
SomeMethod(someobject);
// OR
SomeMethod(_someObject);
}
}
另外,我刚刚读完 Bill Wagner 的《Efficient C#》一书,想知道是否还有其他格式与此类似的书。
我很想知道为什么我应该按照编写的方式编写代码(例如更高效的 IL)
提前谢谢大家:)
【问题讨论】:
-
我会使用本地字段,因为在多线程环境中,
someobject可能会在两者之间发生变化。 -
关于你问题的第二部分,见stackoverflow.com/questions/2181729/…
-
@Corak:您的评论肯定是使用 parameter 而不是本地字段的论据吗?
-
呃……我想的越多;
someobject和_someobject都不能在构造函数中更改。还是我错过了一些非常奇怪的竞争条件,其中一个线程可以访问未使用其构造函数完成的对象的字段?但是是的,someobject肯定不能在两者之间改变。 -
通常你在私有成员的名字中使用下划线来避免输入“this”。前。但这是关于可读性,而不是性能。
标签: c# constructor coding-style