使用Visual Studio 2010(可能還有2008)我注意到Intellisense會爲枚舉提供完全限定名稱空間的行爲。Visual Studio在不需要時提供完全限定名稱空間
例如,我可以這樣寫代碼:
element.HorizontalAlignment = HorizontalAlignment.Right;
element.VerticalAlignment = VerticalAlignment.Bottom;
但是,當我試圖寫它,它表明我寫這樣的:
element.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
element.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
這種不必要的額外的代碼才能真正加起來,使其不易讀,我必須基本與智能感知戰鬥,以避免它。
我有這個理由嗎?我可以關掉它嗎?我假設原因是枚舉的名稱與該屬性的名稱相同。但這真的不是一個好理由。
編輯:
下面是說明爲什麼完全合格的命名是沒有必要的另一個例子。
using SomeOtherNamespace;
namespace SomeNamespace
{
public class Class1
{
public Class2 Class2 { get; set; }
public Class1()
{
// These all compile fine and none require fully qualified naming. The usage is context specific.
// Intellisense lists static and instance members and you choose what you wanted from the list.
Class2 = Class2.Default;
Class2.Name = "Name";
Class2.Name = Class2.Default.Name;
Class2 = Class2;
}
}
}
namespace SomeOtherNamespace
{
public class Class2
{
public static Class2 Default { get; set; }
// public static Class2 Class2; (This throws an error as it would create ambiguity and require fully qualified names.)
// public static string Name { get; set; } (This also throws an error because it would create ambiguity and require fully qualified names.
public string Name { get; set; }
}
}
Intrresting;在我不記得的時候,VS從來沒有提過完全合格的名字。 – 2012-04-22 21:01:26
我以前在Windows窗體應用程序中遇到過相同的問題。這是建議我編寫System.Windows.Forms.DialogResult.OK,而不是僅僅是DialogResult.OK。同樣,我很確定這是事實,在該範圍內有一個名爲「DialogResult」的本地屬性(一個表單)。 – 2012-04-22 21:07:30
沒錯。我認爲這是在這種情況下需要的。 – 2012-04-22 22:28:25