Gå til innhold

Anbefalte innlegg

Heisan folkens

 

Jeg sitter og lager et program som skal håndtere innstillinger for et annet program jeg lager i Clarion. Det jeg har gjort er å etterligne registeret og dermed har jeg metoder som GETREG og PUTREG. Problemet er at i Clarion programmet så har jeg brukt konstanter som inneholder større verdier en ENUM klarer. Dette for å gjøre dette kompatibelt med Registry.

 

Verdiene er som følger:

		public enum Reg
	{
		CLASSES_ROOT = 0x80000000,
		CURRENT_USER = 0x80000001,
		LOCAL_MACHINE = 0x80000002,
		USERS = 0x80000003,
		PERFORMANCE_DATA = 0x80000004,
		CURRENT_CONFIG = 0x80000005,
		DYN_DATA = 0x80000006
	}

Disse verdiene resulterer i en "Cannot implicitly convert type 'uint' to 'int'" på alle elementene og jeg gjetter dermed på at verdiene er for store til å legge inn i en ENUM.

 

Finnes det noen alternativer til slike konstanter?

 

Ole

Lenke til kommentar
Videoannonse
Annonse

Hvis jeg husker korrekt så arver Enum default fra int. Du kan jo arve den fra uint eller long om du heller vil det, det vil vel løse problemet.

 

public enum Reg : long
{
}

 

EDIT: Blæh, et minutt for sent ute gitt.

Endret av steingrim
Lenke til kommentar
public enum Reg : uint
{
 CLASSES_ROOT = 0x80000000,
 CURRENT_USER = 0x80000001,
 LOCAL_MACHINE = 0x80000002,
 USERS = 0x80000003,
 PERFORMANCE_DATA = 0x80000004,
 CURRENT_CONFIG = 0x80000005,
 DYN_DATA = 0x80000006
}

 

C# er flotte greier :)

 

Ja! Det er f... så bra!!

 

hehe

 

Må vel takke deg også da ;-)

 

Ole

Endret av HDSoftware
Lenke til kommentar

Ganske pussig, men Byte og byte er ikke det samme.

 

Prøvde akkurat å lage en ENUM basert på en Byte

public enum LEVEL : Byte
{
Benign,
User,
Program,
Fatal,
Cancel,
Notify
}

men det feilet fordi den forventet en byte.

 

Jeg har alltid trod at 'Byte' var foretrukkent i forhold til 'byte'

 

Hva er egentlig regelen her? Jeg har hele tiden prøvd å holde meg til de med stor forbokstav.

 

Ole

Lenke til kommentar
Byte er vel en C#-klasse, mens byte er en primitiv (selv om denne oppfører seg som en klasse i C#)

 

HUH??

Kan en klasse ha en verdi?

Ser jo at jeg får alternativer hvis jeg trykker en . rett etter en byte eller Byte.

Er det mulig å lage slike klasser selv også?

 

 

uhnm, glem det. Byte er jo ikke en variabel, men en type og kan derav ikke ha en verdi. Ser poenget.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...