On 2010-08-08 21:12, %u wrote:
I'm porting some code from Java to D and am getting stuck on what Java calls static class fields. I can't find out how to write the functional (or best practices) equivalent in D.(There are other syntax errors in D code, I'm fixing them one by one) ######### Begin D code (ported from Java code below, and I probably should use an Enum, but .... haven't) public class Answer { /* I've tried various combinations of syntax here */ static int CORRECT = 0; public const int WRONG = 1; private int _answerCode; private string _answerText; /* */ public this(int answerCode, string answerText) { _answerCode = answerCode; _answerText = answerText; } /* */ public int getAnswerCode() { return _answerCode; } /* */ public string getAnswerText() { return _answerText; } } ####### End D code code ####### Begin Java code (included to show how it was done in java) public class Answer { public static final int CORRECT = 0; public static final int WRONG = 1; private int _answerCode; private String _answerText; /* */ public Answer(int answerCode, String answerText) { _answerCode = answerCode; _answerText = answerText; } /* */ public int getAnswerCode() { return _answerCode; } /* */ public String getAnswerText() { return _answerText; } } ###### End Java code ######### Begin D code snippet trying to use the Answer class int asd = Answer.CORRECT;<-- compile error here try { answer = problem.getAnswer(reply); // grade answer if (answer.getAnswerCode() == Answer.CORRECT)<-- compile error here inOut.displayAnswer("Correct"); else inOut.displayAnswer("Nope, " ~ answer.getAnswerText()); } catch (Exception iae) { inOut.displayAnswer(iae.getMessage()); repeatQuestion = true; // show same question again } ######### End D code snippet
I don't know how you are trying to use your class but I don't see any errors in your code.
-- /Jacob Carlborg
