我剛開始使用ReSharper的分析我的代碼,並有很多事情它建議我這樣做,我對它的輸出感到非常滿意,因爲它也教會了我一些更好的做事方法。
很明顯,它的建議可以忽略,其中一個我只想從社區獲得一些反饋!
我一直傾向於對屬於當前類的屬性(即this.Name)使用'this'限定符。沒有真正的理由 - 我似乎在今天採用了這麼多的衛星。
Resharper認爲這是多餘的,也許我應該刪除它。
您認爲如何?
我剛開始使用ReSharper的分析我的代碼,並有很多事情它建議我這樣做,我對它的輸出感到非常滿意,因爲它也教會了我一些更好的做事方法。
很明顯,它的建議可以忽略,其中一個我只想從社區獲得一些反饋!
我一直傾向於對屬於當前類的屬性(即this.Name)使用'this'限定符。沒有真正的理由 - 我似乎在今天採用了這麼多的衛星。
Resharper認爲這是多餘的,也許我應該刪除它。
您認爲如何?
要記住的一件重要的事情是編譯器刪除了this
,所以它純粹是「你和共享代碼的人看起來不錯」的問題。它會影響性能而不是白色。
謝謝 - 這是我主要關心的問題 - 我的偏好是否優於性能。 – EzaBlade 2011-06-15 11:35:30
它在技術上是多餘的,但StyleCop(如果你挑剔並使用全套Microsoft編碼標準)說你應該使用它。
我確實很多人都沒有,所以我想這是根據個人喜好或僱主的編碼標準。
在這種情況下,它的首選項 - 所以你更喜歡使用它,告訴resharper,它會停止抱怨。
我覺得特別有明確定義的編碼標準冗餘:
Name // Property
_name // Member field
name // local variable
使用this.<whatever>
只是似乎是更多的工作。
這仍然不能解決基地。限定符功能。 – 2013-07-16 08:35:58
最好,我使用this
只是爲了防止之間(可能)屬性和功能參數
public class thing
{
private string name;
public thing(string name)
{
this.name = name; // will set private string name to param string name
}
}
,如果你已經在某一類的環境中工作的模糊性,它不是那麼很難保持這個記住,並且我不需要提醒我每次處理一個地址時都要處理一個局部變量。
所以我認爲resharper在這一個權利。
我個人認爲使用this
這個關鍵字是個好習慣,因爲它明確標記了prorerty/method/etc是否屬於對象實例。這是非常有用的,然後私有成員的命名使局部變量是無法區分私有成員:
/// some pretty long method
/// ...
frameCount += 1; // is it private memeber or some local defined above?
不用說,它可能會更好沒有在所有比inconsistenly使用使用它。
但是我發現持續使用this
會使代碼看起來很「嘈雜」,this
是無用的干擾。國際海事組織,最好使用專用_
前綴命名爲私有成員:
/// some pretty long method
/// ...
_frameCount += 1; // it's clearly private memeber!
它也快得多輸入。
肯定有一些重複的:http://stackoverflow.com/questions/725770/should-the-java-this-keyword-be-used-when-it-is-optional和http:// stackoverflow .com/questions/3920279/should-i-use-this-keyword-in-oop-programing-where-its-possible-to-skip-it-an – Dyppl 2011-05-04 14:46:53
你知道你在課堂或工作中的夢想你沒有穿任何衣服?這就是成員的財產或方法引用沒有這個'this.'讓我感覺。 – 2011-05-04 14:49:24
考慮類比,在這種情況下穿衣服將是一種不必要的,臨界神經質行爲。 – 2011-05-10 10:15:52