SMU*_*hah 12 c# this this-keyword
很抱歉再次询问,已经有一些关于此关键字的问题.但他们所有人都说出了"这个"的目的.
什么时候使用这个关键字
C#何时使用此关键字
在C#中使用静态方法的形式参数中的"this"关键字在C#中
正确使用"this."关键字?
我的问题是何时不使用'this'关键字.
或者
在代码之类的情况下始终使用此关键字是否正确
class RssReader
{
private XmlTextReader _rssReader;
private XmlDocument _rssDoc;
private XmlNodeList _xn;
protected XmlNodeList Item { get { return _xn; } }
public int Count { get { return _count; } }
public bool FetchFeed(String url)
{
this._rssReader = new XmlTextReader(url);
this._rssDoc = new XmlDocument();
_rssDoc.Load(_rssReader);
_xn = _rssDoc.SelectNodes("/rss/channel/item");
_count = _xn.Count;
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这里我没有使用'this'和"_xn"和"_count"也没有使用"_rssDoc.Load(_rssReader);" 好吗?我应该在类中使用"this"以及所有类变量吗?
编辑:在类中为自己的变量使用'this' 是没用的吗?
Dan*_*ner 23
我总是用this.我对局部变量和私有字段使用相同的命名约定,它使代码更容易阅读,因为如果使用的标识符是字段或局部变量,则变得很明显.
此外,它通过添加隐藏字段的新局部变量来防止引入错误.
internal sealed class Foo
{
private Int32 bar = 42;
private void Bar()
{
// Uncommenting the following line will change the
// semantics of the method and probably introduce
// a bug.
//var bar = 123;
Console.WriteLine(bar);
// This statement will not be affected.
Console.WriteLine(this.bar);
}
}
Run Code Online (Sandbox Code Playgroud)
这可以通过对字段和局部变量使用不同的命名约定来避免,但我真的不喜欢下划线前缀名称.单词的第一个字符对于其可读性非常重要,而下划线是最糟糕的选择之一.
Chr*_*ich 16
this几乎总是可选的,不需要指定.如果您想明确表示您指的是成员,请使用this.如果你有一个命名约定(比如命名所有成员字段_foo),那么你真的不需要像它们那样引用它们this._foo.
这是个人品味的问题(没有性能损失),但我发现this如果你有一个坚实的命名约定,那么显式更难维护并且增加很少的价值.有些人只会this在调用成员方法时使用,例如,this.Foo(_bar)而不是Foo(_bar),但我再也不认为它增加了很多.
如果您正在使用现有代码,请遵循其中的约定,否则,选择哪个使您最有效率和最有效.
| 归档时间: |
|
| 查看次数: |
6531 次 |
| 最近记录: |