Konwersja Javy na C#

0

Witam

Mam konsolowy program w Javie. Chciałem go przerzucić do Visula C#. W necie znalazłem informacje o jakimś narzędziu do tego - JLCA, to to chyba stara historia bo nie mogę tego nigdzie znaleźć pod Visuala 10.
W jaki najprostszy sposób zamienić kod w Javie na C#?

0

Nie zagłębiałem się, ale może to narzędzie pomoże: http://www.ikvm.net/

0
Wibowit napisał(a):

Nie zagłębiałem się, ale może to narzędzie pomoże: http://www.ikvm.net/

To raczej nie to czego szukam. Ja chciałbym żeby jakiś program zamienił mi kod źródłowy w Jave na kod źródłowy w C#.
Takie coś ma niby umożliwiać Java Language Conversion Assistan, ale nie potrafie tego znaleźć. Wiec może jest jakieś inne narzędzie które zamieni kod Java na C#?

0
Adramel napisał(a):

W necie znalazłem informacje o jakimś narzędziu do tego - JLCA, to to chyba stara historia bo nie mogę tego nigdzie znaleźć pod Visuala 10.

Bardzo stara, to narzędzie było po raz ostatni chyba w VS 2005, od tamtej pory VS nie obsługuje już J#, więc nie ma konwertera. (Zresztą, jak skonwertować fiata 125p do porsche carrera?)

Adramel napisał(a):

Wiec może jest jakieś inne narzędzie które zamieni kod Java na C#?

Sharpen? Podobno jest nawet wtyczką do Eclipse.

0

jak duży jest program? bo może najprościej to zrobić przy pomocy Ctrl+H ...

0

Nie, program jest mały. Ma tylko pare błędów. Tyle że maja znajomości środowiska C# jest... mizerna.
Błędy są takie :
Lista:
ArrayList<Automat> automaty = new ArrayList<Automat>();
funkcja:
boolean sprawdzAutomat(int[] chrom){

boolean wynik = true;

  • kilka innych które wynikają z braku listy(pobranie jej długości i wartości).

Jak by to było w C# ?

1

W C# nie ma ArrayList<>, jest List<> (albo, nawiasem, przestarzałe ArrayList).
W C# nie ma boolean, jest bool.

Coś jeszcze?

0
msm napisał(a):

W C# nie ma ArrayList<>, jest List<> (albo, nawiasem, przestarzałe ArrayList).
W C# nie ma boolean, jest bool.

Coś jeszcze?

Już drobne rzeczy:
Wielkośc listy - lista.size()
Pobranie z listy - String wej = lista.get(0).substring(0, 1)
i
wyj.contentEquals(lista.get(i).substring(1, 3)))

0

Na oko to tak:

  1. lista.Count zamiast lista.size()
  2. string wej = lista[0].Substring(0, 1)
  3. wyj == lista[0].Substring(1, 3)
0

Mam jeszcze problem z
int poz = (int)Math.Floor(Math.random()*(lenChrom-1));

Funkcja Math nie ma Randoma?

I jeszcze taki błąd(załącznik):

0

Nie ma, ale gdybyś wpisał w google "C# random" zamiast lecieć na forum to wiedziałbyś jak to poprawnie zamienić o wiele szybciej.

0
Rev napisał(a):

Nie ma, ale gdybyś wpisał w google "C# random" zamiast lecieć na forum to wiedziałbyś jak to poprawnie zamienić o wiele szybciej.

Naprawdę szukałem w necie. Ciągle szukam ale nie mogę pozbyć się błędu. Za mało kumam te C#...
Nawet jak
int poz = (int)Math.floor(Math.random()*(lenChrom-1));

zamieniłem na tab[i] = Math.Floor(1);
to nadal jest błąd składni...

0
Adramel napisał(a):

Funkcja Math nie ma Randoma?

  1. Math, czy to w Javie, czy w C# to klasa.
  2. Oczywiście, że nie ma randoma i nie powinna mieć, co mają wspólnego liczby losowe z powszechnymi operacjami matematycznymi?
    Losowanie liczb w C#:
Random rand = new Random();
int x = rand.Next();
double y = rand.NextDouble();
int q = rand.Next(10, 200);

Jeśli chcesz je losować wielokrotnie np. w pętli albo ogólnie w krótkim czasie, to lepiej, żeby rand był statycznym polem klasy.

Adramel napisał(a):

zamieniłem na tab[i] = Math.Floor(1);
to nadal jest błąd składni...

To nie jest problem z niezrozumieniem C# tylko z nieczytaniem błędów. Metoda Floor wymaga decimala lub double, a Ty podajesz inta, wystarczyłoby, żebyś zamiast 1 napisał 1.0.

0

Edytowałem poprzedni post do odgadłem czemu był błąd.

Dzieki wszystkim za pomoc. Pozbyłem się wszystkich błędów w kompilatorze. Teraz musze tylko zgadnąć czemu program nie działa tak jak bym chciał;))

0

To pokaż ten program.

1 użytkowników online, w tym zalogowanych: 0, gości: 1