I have not used a statically typed language for many years and set myself the task of speeding up work with C #. I am using my regular trick after fifteen exercises here http://www.jobsnake.com/seek/articles/index.cgi?openarticle&8533 as my first task.
I just finished the second Fibonacci task, which didn’t take much time and works great, but, in my opinion, looks ugly, and I’m sure that it could be achieved in a much smaller number of lines of more elegant code.
I usually like to learn pair programming with someone who already knows what they are doing, but this option is not open to me today, so I hope the publication will be the next best one.
So, for all C # Jedi, if you are going to reorganize the code below, what would it look like?
using System; using System.Collections; namespace Exercises { class MainClass { public static void Main(string[] args) { Console.WriteLine("Find all fibinacci numbers between:"); int from = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("And:"); int to = Convert.ToInt32(Console.ReadLine()); Fibonacci fibonacci = new Fibonacci(); fibonacci.PrintArrayList(fibonacci.Between(from, to)); } } class Fibonacci { public ArrayList Between(int from, int to) { int last = 1; int penultimate = 0; ArrayList results = new ArrayList(); results.Add(penultimate); results.Add(last); while(last<to) { int fib = last + penultimate; penultimate = last; last = fib; if (fib>from && fib<to) results.Add(fib.ToString()); } return results; } public void PrintArrayList(ArrayList arrayList) { Console.WriteLine("Your Fibonacci sequence:"); Console.Write(arrayList[0]); for(int i = 1; i<arrayList.Count; i++) { Console.Write("," + arrayList[i]); } Console.WriteLine(""); } } }
Hello,
Chris
c # refactoring
ChrisInCambo Jan 02 '09 at 10:19 2009-01-02 10:19
source share