c# - 什么时候使用 "this"关键字?

标签 c# coding-style this

<分区>

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

在构造函数中:

public Light(Vector v)
{
    this.dir = new Vector(v);
}

别处

public void SomeMethod()
{
    Vector vec = new Vector();
    double d = (vec * vec) - (this.radius * this.radius);
}

最佳答案

我并不是说这听起来很刻薄,但这没关系。

说真的。

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

这真的只是一个风格问题。如果你喜欢“这个”,那就使用它。如果你不这样做,那就不要。如果您需要它来获得正确的语义,请使用它。事实上,每个程序员都有自己独特的编程风格。这种风格反射(reflect)了特定程序员关于“最美观的代码”应该是什么样子的观念。根据定义,阅读您代码的任何其他程序员都会有不同的编程风格。这意味着总会有其他人不喜欢或会以不同方式做的事情。在某些时候,有人会阅读您的代码并提示一些事情。

我不会为此烦恼。我只是确保代码根据您自己的口味尽可能美观。如果你问 10 个程序员如何格式化代码,你会得到大约 15 个不同的意见。一个更好的重点是代码是如何分解的。抽象的东西对吗?我是否为事物取了有意义的名字?有很多代码重复吗?有什么方法可以简化事情吗?我认为,把这些事情做好,会对你的项目、你的代码、你的工作和你的生活产生最大的积极影响。巧合的是,这可能也会让对方提示最少。如果您的代码有效、易于阅读且分解良好,那么其他人就不会仔细检查您如何初始化字段。他只会使用你的代码,惊叹于它的伟大,然后继续做其他事情。

关于c# - 什么时候使用 "this"关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23250/

相关文章:

Python - 最好有多种方法或大量可选参数?

python - 我应该将在初始化期间仅使用一次的字典放入我的类中吗?

Jquery 选择具有相同类名的一组元素中单击的元素

c++ - 带有 std::thread 和 this 的 ctor 初始值设定项列表

C# LINQ 一遍又一遍地执行相同的工作

c# - 在C#中生成任务并知道任务何时完成

c# - 使用 FileChooserDialog GtkSharp 解析文件路径

c# - 如何在不破坏动画的情况下重命名生物模型的层次结构?

javascript - JavaScript 中关于样式指南的 'standard' 是什么?

Java显式构造函数调用和实例初始化器