Egy Genetikus Algoritmuson dolgozok eddig megcsináltam a Kromoszómákat kilistázó alprogramot és a véletlen kromoszómákat generáló alprogramot mikor külön elindítom a programot akkor hibát jelez. Hiba és kód lent. Mit csináljak?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace birdgenag
{
public class chromosome
{
public string bits
{
get;
set;
}
public byte fitness
{
get;
set;
}
}
class Program
{
public const byte n = 10;
public static chromosome[] chromosomes = new chromosome[n];
public bool found;
public static void genrandoms(chromosome[] chromosomes)
{
Random r = new Random();
chromosome curchromosome;
for (int j = 0; j < 10; j++)
{
try
{
curchromosome = chromosomes[j];
curchromosome.bits = "0000000000";
curchromosome.fitness = 0;
string tmpstr = curchromosome.bits;
StringBuilder sb = new StringBuilder(tmpstr);
for (int i = 0; i < sb.Length; i++)
{
sb[i] = Convert.ToChar(r.Next(0, 1));
}
curchromosome.bits = Convert.ToString(sb);
}
catch (Exception)
{
throw;
}
}
}
public static void listchromosomes(chromosome[] chromosomes)
{
for (int i = 0; i < chromosomes.Length; i++)
{
Console.Write("Chromosome: ");
Console.Write(chromosomes[i].bits);
Console.Write(" | Fitness: ");
Console.Write(chromosomes[i].fitness);
}
}
static void Main(string[] args)
{
genrandoms(chromosomes);
listchromosomes(chromosomes);
}
}
}
Nem korai neked kicsit ez a téma?
A kérdés és a kódból is kiindulva még nagyon kezdő vagy.
A hibaüzenet meg elég egyértelmű.
Az 53. sorban null referenciára hivatkozol.
VisualStudio általában sorra pontosan megmondja, hol keletkezett a kivétel. Kivétel szövege egyébként elég beszédes: olyan objektumra hivatkozol, amelyet nem hoztál létre. Ahogy nézem (csak átfutottam), chromosomes tömböt allokálod, de elemekkel már nem töltöd fel - ez pl okozhatja.
Egy tipp: kövesd az adott platform elnevezési konvencióit. CamelCase, osztályneveket, metódusokat, Propertyket nagybetűvel kezdeni. Sokat javítana az olvashatóságon.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!