如果我正在访问成员字段,属性或方法,我将永远不确定何时应该使用'this'作为前缀.
我不是在询问需要它的情况,例如局部变量具有相同名称的情况.我说的是意义完全相同的情况.哪个更具可读性?我应该遵循哪些标准,最佳实践或经验法则?它应该在整个班级或整个代码库中保持一致吗?
让我给你举个例子:
public class MyClass
{
public string MyProperty { get; set; }
public MyClass(string myProperty)
{
MyProperty = myProperty; // bad?
this.MyProperty = myProperty; // good?
}
}
Run Code Online (Sandbox Code Playgroud)
我已经开始this在这种情况下使用,因为我有轻微的偏执,单独依赖案例可能会令人困惑,或者更糟糕的可能实际上会导致错误.
这里的"最佳实践"是什么?
编辑:
到目前为止,听起来这比我想象的要主观得多.我认为人们会在一方或另一方强烈下来.
public int Position
{
get
{
if (Session["Position"] != null)
{
Position = Convert.ToInt32(Session["Position"]);
}
else
{
Position = 5;
}
return Position;
}
set
{
Position = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我的程序调用get并进入if循环,然后无限运行到set代码中
可能重复:
您何时使用"this"关键字?
我正在写一些我的第一个C#代码,我注意到this.foo只有当本地名称foo不同时才需要this.foo.到目前为止,我对是否使用不一致this.
是否优先使用this或者仅this在必要时使用?
我正在阅读Head First C#这本书(到目前为止它一直很顺利),但是我在使用"this"时所涉及的语法方面遇到了很多麻烦.关键词.
从概念上讲,我认为我应该使用它来避免参数掩码具有相同名称的字段,但是我通过他们的示例实际跟踪它时遇到了麻烦(同样,他们似乎没有专门的部分对于那个特定的关键字,他们只是解释它并开始在他们的例子中使用它).
在应用"this"时,有没有人有任何好的经验法则?或者任何在线教程以与Head First C#不同的方式解释它?
谢谢!
大家好,星期五我有一个关于this.method();的使用的问题.我的代码似乎可以在不使用它的情况下工作.但是我包含它因为它似乎是正确的事情.应该什么时候使用它,并且因为它的存在并不总是有所作为,这对于.this的最佳实践是什么?
我们都知道这this是指一个类的实际实例......但在我看来,大多数人并没有使用它.那么,我应该使用它吗?
我对它的看法如下:由于this引用了类的实际实例,它应该用于访问该类的任何成员.
public void(String newValue) {
this.privateVariable = newValue;
}
Run Code Online (Sandbox Code Playgroud)
这应该保证该值不会分配给范围内具有相同名称的对象(无论如何,这也可能最终成为未定义的行为).但是,如果使用下划线将私有字段与非私有字段分开,该怎么办:
public voud(String newValue) {
_privateVariable = newValue;
}
Run Code Online (Sandbox Code Playgroud)
this 在这种情况下似乎有点多余和不必要.
那么,是否有充分的理由使用或不使用this?或者我只是绞尽脑汁想要什么?
c# ×6
this ×3
coding-style ×2
asp.net ×1
class ×1
constructor ×1
field ×1
keyword ×1
methods ×1
parameters ×1
properties ×1
setter ×1