Ho sentito che l'annidamento di enum
non è possibile in C#. Quindi come può convertire la seguente struttura in una gerarchia di classi o qualcos'altro. Quindi voglio la classe di agire come un enum
enumerato nid in C# e classi
risposta
classi annidate e campi const
class Cat1
{
public const int Public = 1;
public class Private
{
public const int Abc = 2;
public const int Mno = 3;
public const int Pqr = 4;
}
}
E mentre ci sei, segna le classi statiche. – ver
Vale la pena notare che la variabile sarebbe solo un 'int', quindi potrebbe ottenere un valore non valido da qualche altra parte. –
è possibile utilizzare il hirerchy come struttura di classe, che ogni classe ha una proprietà di un proprio della enum
public class Cat1
{
public enum Publicpart
{
Xyz
}
private enum Privatepart
{
Abc, Mno, Pqr
}
}
allora si può chiamare in questo modo
Cat1.Publicpart.Xyz
o se si dispone di accesso privato
Cat1.Privatepart.Abc
Si dovrebbe ripensare se si vuole risolvere questi problemi attraverso le enumerazioni perché la prima categoria enum rappresenta per me una sorta di concetto di "visibilità", mentre la seconda categoria è valido solo per istanze con visibilità "pubblica".
Che dire di risolvere il tuo problema con qualcosa di simile:
public enum Visibility
{
Public,
Private
}
public abstract class VisibilityState
{
public Visibility Visibility { get; private set; }
protected VisibilityState(Visibility visibility)
{
Visibility = visibility;
}
}
public class PublicVisibilityState : VisibilityState
{
public PublicVisibilityState() : base(Visibility.Public) { }
}
public class PrivateVisibilityState : VisibilityState
{
public PrivateVisibilityState() : base(Visibility.Private) { }
public OtherEnum OtherEnumState { get; set; }
}
public enum OtherEnum
{
Abc, Mno, Pqr
}
- 1. enumerato nid: perché viene utilizzato?
- 2. Objective-C NSMutableArray mutato mentre viene enumerato?
- 3. Strutturazioni e classi in C++
- 4. evitare doppio evento (onclick) con nid ul/li nid
- 5. listview nid androide
- 6. .NET XmlSerializer e classi nidificate in C#
- 7. specializzazione Template e classi derivate in C++
- 8. Modelli C++ e classi derivate
- 9. Modulo nid ActiveAdmin nella pagina #show
- 10. Perché un enumerato non viene controllato dal compilatore C?
- 11. Come sovraccaricare | = operatore su enumerato ambito?
- 12. L'evento ng-clic di AngularJS non viene attivato quando si trova nid-nid ripetuto
- 13. C# Classi di amici e composizione OOP
- 14. Riflettere classi derivate in C#
- 15. Classi statiche C# e l'operatore is
- 16. EventHandlers e C# Classi distruttore/Dispose
- 17. Classi modello C++ e costruzione copia
- 18. Classi interne anonime in C#
- 19. C# - Uso OfType e classi ignorare ereditato
- 20. Metodi modello e classi modello C++
- 21. C++ Forward Dichiarare classi nelle classi
- 22. Classi di modelli e protezioni incluse in C++
- 23. BsonValue e classi personalizzate in MongoDB C# Driver
- 24. Qual è la differenza tra oggetti e classi in C#?
- 25. Classi e classe di base ereditarietà in C#
- 26. classi C++ prototipo conflitto
- 27. Ogni NetworkInterface enumerato all'interno JBoss sempre ISUP
- 28. classi Rendere pubbliche ad altre classi in C++
- 29. Una domanda su C# e classi e funzioni statiche
- 30. classi in più file in C++
cosa hai provato finora? funziona ? se no, cosa dovrebbe fare? – Alex
Intendi un enum o un enumerable? Quanto sopra sembra più qualcosa che sarebbe modellato da un enumerabile che da un enum. –
Questa domanda è vecchia, ma ho fatto un suggerimento (su roslyn github project) per implementare questa funzionalità nelle prossime versioni di C# http://github.com/dotnet/roslyn/issues/13192 – lmcarreiro