首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您什么时候使用"this“关键字?

您什么时候使用"this“关键字?
EN

Stack Overflow用户
提问于 2008-08-22 19:21:25
回答 31查看 219.5K关注 0票数 248

我很好奇其他人是如何使用this关键字的。我倾向于在构造函数中使用它,但在整个类中,我也可能在其他方法中使用它。下面是一些例子:

在构造函数中:

代码语言:javascript
复制
public Light(Vector v)
{
    this.dir = new Vector(v);
}

其他地方

代码语言:javascript
复制
public void SomeMethod()
{
    Vector vec = new Vector();
    double d = (vec * vec) - (this.radius * this.radius);
}
EN

回答 31

Stack Overflow用户

回答已采纳

发布于 2008-08-22 21:12:48

关键字在C#中有几种用法。

  1. 对隐藏在类似名称中的成员进行限定
  2. 让对象将自身作为参数传递给其他方法
  3. 使对象从方法返回自身
  4. 声明索引器
  5. 声明扩展方法
  6. 传递构造函数之间的参数
  7. 内部重新分配值类型(struct)值
  8. 调用当前实例上的扩展方法
  9. 将自身转换为另一种类型
  10. 在同一个类中定义的链式构造函数

您可以避免第一次使用,方法是不具有同名的成员和局部变量,例如遵循常见的命名约定,并使用属性(Pascal case)而不是字段(camel case)来避免与局部变量(也是camel case)发生冲突。在C# 3.0中,可以使用自动实现的属性轻松地将字段转换为属性。

票数 217
EN

Stack Overflow用户

发布于 2008-08-22 20:42:19

我不是故意这么说的,但没关系。

我是认真的。

看看那些重要的事情:你的项目,你的代码,你的工作,你的个人生活。它们中的任何一个都不会成功取决于您是否使用"this“关键字来限定对字段的访问。此关键字将不会帮助您按时发货。它不会减少bug,也不会对代码质量或可维护性产生任何明显的影响。这不会给你加薪,也不会让你减少在办公室的时间。

这真的只是个时尚问题。如果你喜欢“这个”,那就用它。如果你没有,那就不要。如果你需要它来获得正确的语义,那就使用它。事实上,每个程序员都有自己独特的编程风格。这种风格反映了特定程序员对“最美观的代码”应该是什么样子的概念。根据定义,任何阅读您的代码的其他程序员都会有不同的编程风格。这意味着,总会有一些你做过的事情,而另一个人不喜欢,或者会采取不同的做法。总有一天,某个人会读你的代码,并抱怨一些事情。

我不会为此烦恼的。我只想确保代码在美观上尽可能符合您自己的口味。如果你问10个程序员如何格式化代码,你会得到大约15个不同的意见。需要关注的更好的事情是代码是如何被分解的。事情是抽象的吗?我选了有意义的名字吗?有很多代码重复吗?有什么办法我可以简化吗?我认为,把这些事情做好,将对你的项目、代码、工作和生活产生最大的积极影响。巧合的是,这也可能会使另一个人的牢骚最少。如果您的代码工作正常,易于阅读,并且考虑得很好,那么另一个人将不会仔细检查您如何初始化字段。他只会使用你的代码,惊叹于它的伟大,然后继续做其他的事情。

票数 245
EN

Stack Overflow用户

发布于 2008-08-22 19:26:06

我只在绝对必要时才使用它(当另一个变量跟踪另一个变量时)。如下所示:

代码语言:javascript
复制
class Vector3
{
    float x;
    float y;
    float z;

    public Vector3(float x, float y, float z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

}

或者正如Ryan Fox指出的,当您需要将其作为参数传递时。(局部变量优先于成员变量)

票数 96
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档