Jag har fått ett datatype-problem: När du kör en enum är allt int, som default. och du kan inte ha något annat heller. Hur kan jag komma förbi detta då? Du kan ju använda dig av klass variabler istället... Angående din switch så kan du inte använda doubles i en switch sats. gissar att du bara kan använda tal av integral typ (?) och strängar... Jag märkte det, jag gjorde om inmatningen till string så kom jag förbi det. Kan du inte deklarera enumen så här Tack Jan, men jag gjorde på ett annat sätt.Convertera till double
<code>
public double Fran;
public enum Tonart
{
C = 10,
Ciss = 10.5,
D = 11,
Diss = 11.5,
E = 12,
F = 13,
Fiss = 13.5,
G = 14,
Giss = 14.5,
A = 15,
Aiss = 15.5,
H = 16
}
</code>
Error:
<code>
E:\Music_Translater 2.0\Music_Translater 2.0\Class1.cs(16): Cannot implicitly convert type 'double' to 'int'
</code>
Jag har inte någonstans deklarerat att jag skall ha Tonart som int.
Hur ändrar jag detta? Sv: Convertera till double
Mvh JohanSv: Convertera till double
Jag behöver alltså deklarera för double.
[REDIGERAT]
Jag försöker på ett annat sätt
public double C = 10;
public double Ciss = 10.5;
public double D = 11;
public double Diss = 11.5;
public double E = 12;
//osv
Nu gör jag lite uträkningar, får fram ett svar och vill konvertera om detta:
<code>
klart = Music_Translater.Class1.OmvandTransport(TotalKey)//TotalKey innehåller en siffra.
//i min class-fil
public static string OmvandTransport(double iValue)
{
string klart = "";
try
{
switch(iValue)
{
case 10:
klart = "C";
break;
case 10.5:
klart = "C#";
break;
</code>
..här får jag följande fel:
<code>
E:\Music_Translater 2.0\Music_Translater 2.0\Class1.cs(35): A value of an integral type expected
</code>
..och så pekar den på iValue.
Några förslag??Sv: Convertera till double
typ
<code>
public class Tonart
{
public static double C= 10;
public static double Ciss = 10.5;
public static double D = 11;
public static double Diss = 11.5;
public static double E = 12;
public static double F = 13;
public static double Fiss = 13.5;
public static double G = 14;
public static double Giss = 14.5;
public static double A = 15;
public static double Aiss = 15.5;
public static double H = 16;
private Tonart(){}
}
</code>Sv: Convertera till double
Du får kanske använda en if - else if konstruktion iställetSv: Convertera till double
Tack för hjälpSv: Convertera till double
<code>
public enum Tonart
{
C = 100,
Ciss = 105,
D = 110,
Diss = 115,
E = 120,
F = 130,
Fiss = 135,
G = 140,
Giss = 145,
A = 150,
Aiss = 155,
H = 160
}
</code>
och sedan göra en division med 10 i de fall de behövs.
//
JanneSv: Convertera till double
Jag deklarerade som public string och fick in värdena.
Det kanske kodmässigt inte ser så snyggt ut, men fungerar kanonbra.