Stringből felsorolástípusba konvertálás Enum. TryParse-val?
Az alábbi hibakódot kapom:
the type string must be non nullable value type to use it as parameter 'TEnum'
public enum Faj { kutya, panda, nyul };
lista[jelenlegi].Fajta = Enum.TryParse("Faj",out adat[3]); //itt jelzi a hibát
Kicsit alább beilesztem a teljes kódot.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp7
{
public enum Faj { kutya, panda, nyul };
class Allat
{
public Faj Fajta { get; set; }
public string Nev { get; set; }
public bool Nem { get; set; }
public int Suly { get; set; }
}
class Ketrec
{
int meret,jelenlegi=0;
Allat[] lista=new Allat[10];
public Ketrec(int meret)
{
this.meret = meret;
}
public void Felvetel(string adatok)
{
if (jelenlegi<meret)
{
string[] adat = adatok.Split(' ');
jelenlegi++;
lista[jelenlegi].Nev = adat[0];
lista[jelenlegi].Nem = Convert.ToBoolean(adat[1]);
lista[jelenlegi].Suly = int.Parse(adat[2]);
lista[jelenlegi].Fajta = Enum.TryParse("Faj",out adat[3]);
}
}
public void Torol(string nev)
{
int i = 0;
while ((i<meret)&&(nev!=lista[i].Nev))
{
i++;
}
if (i<=meret)
{
while (i < meret-1)
{
lista[i].Nev = lista[i+1].Nev;
lista[i].Nem = lista[i+1].Nem;
lista[i].Suly = lista[i+1].Suly;
lista[i].Fajta = lista[i + 1].Fajta;
}
lista[meret].Nev = "";
lista[meret].Nem = false;
lista[meret].Suly = 0;
lista[meret].Fajta = 0;
meret--;
jelenlegi--;
}
}
}
class Program
{
static void Main(string[] args)
{
}
}
}
Stringbe akarsz egy enumot tenni.
Nem fog menni.
vagy
lista[jelenlegi].Fajta = Enum.Parse(typeof(Faj), adat[3]);
vagy
Enum.TryParse(adat[3], out lista[jelenlegi].Fajta);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!