![](/img/trans.png)
[英]If I declare an internal class, what the default access level of internal members be?
[英]Use this. to access internal class members?
在互聯網上,我看到很多使用它的代碼。 訪問類的本地成員,如下所示:
private String _whatever;
public String Whatever
{
get
{
return this._whatever;
}
set
{
this._whatever = value;
}
}
public void DoSomething()
{
String s = this.Whatever;
this.DoSomething();
}
(不要指望代碼做一些合理的事情。我只是想為“this”展示一些不同的用途。)
我想知道為什么要這樣做? 為源代碼添加更多清晰度?
還是只是浪費空間?
這一切都降低了個人偏好和良好做法。
在大多數情況下,它只是無關緊要,但是當您碰巧有一個與私有字段同名的參數時,它可能很重要(無論如何都表示錯誤的命名約定)。
從我個人的角度來看,對參數或字段的任何變量引用或幾乎任何應該足夠清楚而沒有“this”限定符...只有當它不是並且你不能改變它以使它如此時,我用這個。
StyleCop中有一條規則要求 - 人們似乎只是使用它;)
奇怪的是,沒有人提到這一點:它與IntelliSense一起工作得很好。 輸入“this”。 並彈出有效成員名單。 我沒有花太多時間來證明這一點,“好吧,它使標識符的范圍變得明顯”。
IMO:
this._member
是多余的
而
this.Property
是有道理的。
這樣做是為了增加清晰度,特別是消除實例成員的參數歧義。 我個人認為
總而言之,這是一個個人意見問題(盡管如此,與其他一切一樣,你應該保持一致並同意你的同事)。
在此上下文中使用this
選項是可選的,但它有助於消除歧義。 代碼生成器總是在這里使用this
,muche比查找是否有必要更容易(這是罕見的)。
程序員使用它作為品味問題。
要考慮的事情:
編譯器不關心,即使我們不熟悉你的類結構,我們這些在你身后工作的人也會確切地知道你的意思
這是一個品味問題。 一些開發商通常this
是用來表示引用的對象是類的內部對象。 它只是合成糖。 它還取決於項目的一些命名約定(例如,用下划線開始每個字段名稱)。
this
寫入distingish類數據的每個程序員都有其自己的原因。 有時是因為它們習慣了,有時因為它是項目編碼標准所要求的,也許它們正在使用像這樣的工具格式代碼......
此外,如果您在成員變量和參數或局部變量之間沒有區別,就像在帶有下划線的示例中一樣,它很有用。 只是一個風格問題。
這是為了處理以下可能的情況:
private String value;
public String Whatever
{
get
{
return this.value;
}
set
{
this.value = value;
}
}
實際上, this.
廣泛用於以下示例中的情況:
struct MyStruct
{
private int val1;
private int val2;
public MyStruct(int val1, int val2)
{
this.val1 = val1;
this.val2 = val2;
}
}
用this.
盡可能使您的代碼更清晰,並排除以下可能的錯誤:
private int myVar;
private void doSmth(int myVar)
{
// Some code here ...
myVar = 5; // Are you sure this is one you want to modify?
// Some code here ...
}
然而,這不是一個嚴格的規則,可能與個人編碼風格有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.