Nigdy dotąd nie kwestionowałem tego. Mam model wejściowy z wielu dziedzin, chciałem przedstawić nazwiska ciągów o właściwościach poprzez model wejściowego tak, że mój Siatka może ich używać:Dlaczego klasa nie może mieć właściwości stałej lub stałej i właściwości instancji o tej samej nazwie?
public class SomeGridRow
{
public string Code { get;set; }
public string Description { get;set; }
public const string Code = "Code";
}
Oczywiście, to daje błąd:
The type 'SomeGridRow' already contains a definition for 'Code'
Dlaczego CLR nie poradzi sobie z dwoma właściwościami o tej samej nazwie, które w moich oczach są osobne?
string code = gridRow.Code; // Actual member from instantiated class
string codeField = SomeGridRow.Code; // Static/Const
Mam teraz tylko za pomocą klasy dziecko nazwie Fields
w moim wejść teraz, więc mogę używać SomeGridRow.Fields.Code
. Jest trochę brudny, ale działa.
Aye, ja sup stwarzają to oczywiste, gdy tak się pisze. Zawsze brałem członków statycznych za pewnik, jako dostęp do nich przy użyciu ich rzeczywistej nazwy klasy. Część standardów kodowania, nad którymi pracuję. – GenericTypeTea
@GenericTypeTea - I to jest doskonały standard, w klasie jest miejsce, w którym jest to najbardziej dwuznaczne, być może nigdy nie powinno być dozwolone w ten sposób ... ale myślę, że sposób, w jaki to się skończyło, jest prawdopodobnie najmniej zagmatwanym kompromisem. –
Zgadzam się. To kolejny przypadek jednego rozmiaru nie pasuje do wszystkich ... To naprawdę nie jest poważny problem. Po prostu jestem wybredna. Po prostu odkładam zagnieżdżone klasy. – GenericTypeTea