Con Visual Studio 2010 (probabilmente anche il 2008) noto un comportamento in cui Intellisense suggerisce lo spazio dei nomi completo per le enumerazioni.Visual Studio suggerisce spazi dei nomi completi quando non necessario
Per esempio, posso scrivere codice come questo:
element.HorizontalAlignment = HorizontalAlignment.Right;
element.VerticalAlignment = VerticalAlignment.Bottom;
Ma quando provo a scriverlo, suggerisce scrivo in questo modo:
element.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
element.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
Questo codice aggiuntivo non necessario può davvero sommare e renderlo meno leggibile, e devo sostanzialmente combattere con Intellisense per evitarlo.
C'è un motivo per questo? Posso semplicemente spegnerlo? Presumo che la ragione sia che il nome dell'enumerazione è lo stesso del nome della proprietà. Ma non è davvero una buona ragione.
EDIT:
Ecco un altro esempio che dimostra perché pienamente qualificato di denominazione non è necessario.
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; }
}
}
Intranting; VS non ha mai suggerito nomi pienamente qualificati quando non richiesto, a mio avviso. –
Ho avuto lo stesso problema in precedenza in un'applicazione Windows Form. Stavo suggerendo di scrivere System.Windows.Forms.DialogResult.OK invece di solo DialogResult.OK. Ancora una volta, sono abbastanza sicuro che ci sia una proprietà locale chiamata "DialogResult" in quell'ambito (una forma). –
destra. Lo considererei necessario in una situazione del genere. –