spöokyjon ℵ 18617 Posts user info edit post |
Planet[] planetArray = new Planet[5];
planetArray[0] = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue);
The second line is giving me several errors:
Error 1 Array size cannot be specified in a variable declaration (try initializing with a 'new' expression) Error 2 Invalid token '=' in class, struct, or interface member declaration Error 3 Method must have a return type Error 4 Type expected Error 5 Invalid token ')' in class, struct, or interface member declaration
What am I doing wrong?4/16/2008 9:27:19 AM |
qntmfred retired 40726 Posts user info edit post |
putting this in chit chat, for one 4/16/2008 9:31:37 AM |
quagmire02 All American 44225 Posts user info edit post |
^ 4/16/2008 9:31:50 AM |
spöokyjon ℵ 18617 Posts user info edit post |
I put it in tech talk and nobody responded. 4/16/2008 9:34:15 AM |
synapse play so hard 60939 Posts user info edit post |
all they do in this section is post gifs of dancing fruit. 4/16/2008 9:35:17 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Plus it's in chit chat so people can rickroll it and post tittyballs and whistle for a cab and when it came near.
But hopefully one person will be nice enough to help me with my noobishness. 4/16/2008 9:35:24 AM |
Oeuvre All American 6651 Posts user info edit post |
4/16/2008 9:36:28 AM |
qntmfred retired 40726 Posts user info edit post |
i dunno man, it compiles ok for me
[Edited on April 16, 2008 at 9:40 AM. Reason : prolly a syntax error in a surrounding line. forgot a ) or something] 4/16/2008 9:39:48 AM |
pttyndal WINGS!!!!! 35217 Posts user info edit post |
That's what I was thinking but in the other thread he said that these work. So I'm assuming he was just replacing the code above.
Quote : | "Planet testPlanet = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue);
Planet planet2 = new Planet(20, 50, 300, 300, 2, 3, System.Drawing.Brushes.BlanchedAlmond);" |
4/16/2008 9:43:48 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Yeah...basically, the constructors not using the array work fine. If I insert the one with the array planetArray[0] = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue); that line, specifically, is the one which has the errors. 4/16/2008 9:48:34 AM |
spöokyjon ℵ 18617 Posts user info edit post |
THESE PRETZELS ARE MAKING ME THIRSTY 4/16/2008 10:06:43 AM |
qntmfred retired 40726 Posts user info edit post |
like i said, it compiles just fine for me. post the entire code or something. 4/16/2008 10:07:50 AM |
BigMan157 no u 103354 Posts user info edit post |
THIS SHALL BE PRECEDENT
IF THE MODS CAN CREATE DUPLICATE THREADS
THEN BY GOLLY
SO CAN I
p.s. maybe something like Planet[] planetArray = new Array[5]; will fix it? (i have no idea about C#) 4/16/2008 10:14:47 AM |
392 Suspended 2488 Posts user info edit post |
Quote : | "i have no idea about C#" |
yeah me either -- I was gonna say that "new Planet[5]" should be "new Planet(5)",
but apparently c# does use brackets for array size declarations -- whatever4/16/2008 10:18:49 AM |
pttyndal WINGS!!!!! 35217 Posts user info edit post |
Quote : | "SomeClass[] arrSC = new SomeClass[44]; for (int i = 0; i < 44; i++) { arrSC[i] = new SomeClass(); }" |
apparently that works. maybe it doesn't like the idea of having the position hard coded in. try setting it to like int i=5 and then doing planetArray[i].....4/16/2008 10:28:55 AM |
qntmfred retired 40726 Posts user info edit post |
i'm tellin ya, it works fine. you shouldn't need to initialize via loop or any such nonsensery 4/16/2008 10:31:43 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Full code: (Disclaimer, as in the other thread--I haven't done any programming in years, and I'm learning C# for funsies all from the built-in documentation; this code is probably ghetto as all hell)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace tehgraphhhixzss { public partial class planets : Form { private System.Windows.Forms.Timer timer1;
public planets() { InitializeComponent();
this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true); }
public class Planet { double mass, radius, x, y, dx, dy = 0;
System.Drawing.Brush planetColor;
public Planet() { //nothing } public Planet(double m, double r, double xpos, double ypos, double deltax, double deltay, System.Drawing.Brush pColor) { mass = m; radius = r; x = xpos; y = ypos; dx = deltax; dy = deltay; planetColor = pColor; }
public void Draw(System.Drawing.Graphics graphicsContext) { System.Drawing.Rectangle planetRect = new System.Drawing.Rectangle( (int)(x - radius), (int)(y - radius), (int)(radius), (int)(radius)); graphicsContext.FillEllipse(planetColor, planetRect); // graphicsContext.DrawEllipse(penColor, planetRect); }
public void Update() { x += dx; y += dy; }
public double getX() { return x; } public double getY() { return y; } }
int timesDrawn = 0;
Planet[] planetArray = new Planet[2];
Planet planet1 = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue);
Planet planet2 = new Planet(20, 50, 300, 300, 2, 3, System.Drawing.Brushes.BlanchedAlmond); //the following line won't compile //planetArray[1] = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue);
protected override void OnPaint(PaintEventArgs e) { planet1.Draw(e.Graphics); planet2.Draw(e.Graphics); timesDrawn++; }
private void timer1_Tick(object sender, System.EventArgs e) { planet1.Update(); planet2.Update(); this.Invalidate(); }
private void Form1_Load(object sender, EventArgs e) {
}
private void label1_Click(object sender, EventArgs e) { // label1.Text = label1.Text + "!"; } } } ]4/16/2008 10:32:51 AM |
Rat Suspended 5724 Posts user info edit post |
don't use an array. ever. they are dumb
do this...
make an object called Planet (sounds like you have one)
then make a List<Planet> myPlanetList and start adding them to the list
myPlanetList.add(_someNewPlanetIjustCreated); 4/16/2008 10:33:59 AM |
IRSeriousCat All American 6092 Posts user info edit post |
attention jon morgan,
i do indeed believe i know the answer to your question.
feel free to PM me.
also, are you coding for fun now? 4/16/2008 10:34:23 AM |
qntmfred retired 40726 Posts user info edit post |
yes, use Lists instead.
move that line to the constructor and it'll work 4/16/2008 10:42:31 AM |
Rat Suspended 5724 Posts user info edit post |
yeh thats b/c arrays are declared this way:
Array planetarray = new Array[100];
change it too
List<Planet> myPlanetList = new List<Planet(); Planet p = new Planet(20, 50, 300, 300, 2, 3, System.Drawing.Brushes.BlanchedAlmond); myPlanetList.add(p);
get my drift??? 4/16/2008 10:42:41 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Planet planet1 = new Planet(10, 21, 100, 100, 5, 5, System.Drawing.Brushes.AliceBlue);
Planet planet2 = new Planet(20, 50, 300, 300, 2, 3, System.Drawing.Brushes.BlanchedAlmond);
List myPlanetList = new List();
myPlanetList.Add(planet1); myPlanetList.Add(planet2);
Error 1 Invalid token '(' in class, struct, or interface member declaration Error 2 Invalid token ')' in class, struct, or interface member declaration Error 3 Invalid token '(' in class, struct, or interface member declaration Error 4 Invalid token ')' in class, struct, or interface member declaratio
HOW COULD THIS HAPPEN TO MEEEEEEEEEEEEEEEEEEE4/16/2008 10:54:58 AM |
Oeuvre All American 6651 Posts user info edit post |
reinstall .NET 4/16/2008 10:55:45 AM |
Rat Suspended 5724 Posts user info edit post |
List<Planet> myPlanetList = new List<Planet>();
copy past that motherfcker ver batim
[Edited on April 16, 2008 at 10:57 AM. Reason : .] 4/16/2008 10:56:33 AM |
pttyndal WINGS!!!!! 35217 Posts user info edit post |
lol. C# hates you 4/16/2008 10:56:49 AM |
spöokyjon ℵ 18617 Posts user info edit post |
I can literally copy the following example from MSDN documentation:
List dinosaurs = new List();
Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus");
And it gives me the same error.4/16/2008 10:58:20 AM |
Rat Suspended 5724 Posts user info edit post |
lolz. listen to me or qntmfred or you lose. 4/16/2008 11:01:16 AM |
qntmfred retired 40726 Posts user info edit post |
you can't do planetArray[0] or planetList.Add() out in the middle of the class, it has to be within a method or constructor. 4/16/2008 11:10:55 AM |
spöokyjon ℵ 18617 Posts user info edit post |
^ Gotcha. I think that was the main cause of all my woes. 4/16/2008 11:19:19 AM |
pttyndal WINGS!!!!! 35217 Posts user info edit post |
haha. I didn't even notice that they were hanging out all alone. oh and qntmfred for tww owner. 4/16/2008 11:21:40 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Okay, second (third? fifth??) retarded question:
where can I put the list declaration that isn't just in the body of the class where it's accessible by all the relevant methods? IOW, I was just declaring the individual objects in the body of the class and then using them in timer1_Tick() and Update(). Where should they go now?
I should have called this thread HOLD MY HAND, BITCHES. 4/16/2008 11:28:48 AM |
Rat Suspended 5724 Posts user info edit post |
you would want to declare it outside the methods and constructor then, i do it above the constructors usually.
make it public if you want to be able to access it from anywhere
make it private if you are only using it in your 1 class there 4/16/2008 11:32:31 AM |
qntmfred retired 40726 Posts user info edit post |
you can put those objects out in the middle of the class (declare it). but once you start doing something with it, you gotta put it in a method
public class Example {
private int i = 0; // this is a declaration of the field i. we also optionally initialize the value to 0
Example() { i = 3; // the variable i is within the scope of the constructor, so we can access it here int a = 7; // this variable is only within the scope of the constructor. other methods can't get to it } }
[Edited on April 16, 2008 at 11:34 AM. Reason : .]4/16/2008 11:33:06 AM |
spöokyjon ℵ 18617 Posts user info edit post |
Thank you very much guys, I now have it running.
Rat and qntmfred, I owe you guys a handjob. 4/16/2008 11:41:02 AM |
qntmfred retired 40726 Posts user info edit post |
yay!
wait, wat? 4/16/2008 11:43:48 AM |
Rat Suspended 5724 Posts user info edit post |
just not at the same time 4/16/2008 11:45:29 AM |
pttyndal WINGS!!!!! 35217 Posts user info edit post |
4/16/2008 11:46:47 AM |
qntmfred retired 40726 Posts user info edit post |
^^ see, i was thinking the opposite. either both at once or i'm out 4/16/2008 11:51:43 AM |
Rat Suspended 5724 Posts user info edit post |
cscirclejrek 4/16/2008 11:52:58 AM |
LadyWolff All American 2286 Posts user info edit post |
BEST PROGRAMMING THREAD EVAR!!!
That said, boy do I need to look up some C# and C++ syntax crap. You'd think I'd get it with java vut there's a few lines in there I'm like...do wtf? 5/10/2008 10:08:37 PM |
qntmfred retired 40726 Posts user info edit post |
such as ? 5/10/2008 11:47:03 PM |
colter All American 8022 Posts user info edit post |
what the hell language are you speaking?
HiGh ScHoOl ViRgIn? 5/10/2008 11:55:43 PM |
Walter All American 7764 Posts user info edit post |
i got a C- in Java
i r not very good at programming 5/10/2008 11:57:36 PM |
spöokyjon ℵ 18617 Posts user info edit post |
I CAN HAS MORE PROBLEMS /message_topic.aspx?topic=526919] 5/20/2008 12:34:56 PM |