Click to See Complete Forum and Search --> : Several Questions about C# - Interested in Building Text Adventure Game


wall_fall_down
February 14th, 2008, 04:55 PM
After toying with VB6, something many advised I avoid, I've decided to attempt to learn C#. However, when I ordered a beginner's guide (Microsoft Visual C# .NET Step By Step 2003) I was disappointed to learn that its instructional CD aid lacked a compiler.

I've had a friend of mine copy Microsoft's free Express Visual Studio .NET image to a DVD, and I soon have to pick it up. I also have concerns about the .NET SDK. I downloaded a 23MB (likely old) version of the framework, and my Antechinus editor asks for a makefile utility location.



Well, I found the Microsoft.NET directory, and it has no "nmake.exe." It doesn't even have a "bin" directory as I was instructed to look in, so I apparently need this updated Framework SDK. For my first question: Is this SDK included with a downloaded .iso image (offline install)? If not, is it possible to acquire a CD?



I am fairly familiar with VB6 code, and find it easy to work with simple input/output structures, as I have tried to program a game using VB6. However, C# was recommended and I decided to try it, so here I am.

I noticed while browsing some C# code examples that there is an entire system of TextBox controls that make it behave like a console. This is something I'd like to use in the game I am developing, and I'm embarassed to say that reading the example makes no sense to me. That just means I need to do my reading.

I would like to give a brief explanation of the kind of game I am interested in developing. I have set up many plain-english instructions that serve as a model for the actual programming I need to do, and I continue to work on that to this day. It is my goal to begin translating it into C# code as soon as possible. The second question comes after the explanation (which I hope to keep short.)

The game is a text-based adventure game where the player uses his environment to survive. This is a long-term project. My plan includes a vast map area to explore, containing several different types of terrain in which one must live. The idea is that there will be seasonal changes in temperature, along with offsets for sunrise and sunset. The player will be asked to satisfy hunger, maintain healthiness, maintain hydration, rest and carefully conserve energy, and maintain core temperature

Many things will be added to influence these statistics - weather, accidents, not having a fire, etc. Not maintaining hydration, body temperature, and curbing hunger will also result in detrimental effects to health and energy. All statistics would be set up on an integer point system, and I have converted many of the text instructions into pseudocode already. The related changes are fairly easy to think out, and either a case or an if-then setup seems to be the best option.

I hope to somehow construct seasonal weather patterns, hunted animal availability changes, greater energy loss during stormy, cold days, and etc. The map would be simply based on a fixed pattern of numbers - for instance, moving north meant subtraction 100 from the "location" value, while south would add 100, west would subtract 1, and east would add 1. This seems to be a simple enough way to reference different tiles of the grid.


My question is, after reading my generalized description of the game, does it seem like C# is worth trying to build it in? It was probably recommended for a good reason, but I am completely wet behind the ears with C# and really don't know how to assemble the bits and pieces that I do understand.

Any suggestions are appreciated, and if anyone knows of a source for a game that has been written in C#, it would truly help my learning. Perhaps I'm not searching in the right places, but it seems that most of the text-based adventures are programmed in C++... If so, then maybe I'll just have to buy lots more books.

Anyhow, thanks for any suggestions/input at all. These forums helped guide me towards resources for educating myself in VB6, and I don't doubt that if I put the same amount of work in, I'll get the same results.

TheCPUWizard
February 14th, 2008, 05:01 PM
The Express edition has everything you need, and you can directly download it if you dont want to wait for your frieneds copy on DVD (at first I thought you might not have internet access, then I realized you were positng on the net. :blush: ]

If it is going to be a pure text game, why not just write it as a console program, same as the original Adventure was done over thirty years ago (and I played it when it was first released).

wall_fall_down
February 14th, 2008, 05:59 PM
You mention just using concole programming - I realize this would be a much easier route, and probably a better learning experience. I had considered doing it in console, but then I realized I could learn more, and mae the game more to my liking, if I had several handy systems put into place on a form-style application.

Because you do not have to cunsciously think about your condition to know that you are cold or hungry, one of these systems planned is a statistics readout, which would display progress bars that reflected changes in stats. And since you do not have to tell yourself to assess the weather, heat of the day, or area the sun has risen to, I intend on using an uneditable textbox / label that would display facts about both the character's position, their speed of travel, and a box to display facts about your surroundings.

I may attempt a small-scale console version for testing the outputs and such, and if I do I'll post more about that later tonight.

TheCPUWizard
February 14th, 2008, 08:05 PM
If you do a proper design and isolate your logica and data from the presentation, then you can write all of the logic, and test it with a console. \

Then without making ANY changes to the logic.

1) Make is a Windows Form
2) Make is an ASP.NET page
3) MAke is a WPF/Silverlight application.

wall_fall_down
February 14th, 2008, 08:27 PM
I've decided that you're right - constructing it as a console and then overlaying an entire forms system with the proper displays would indeed be a better way to learn to handle C#.

So I don't mean to be needy, but how in the world do I start this off? I assume I'll be including a using System; statement. My biook teaches you to use the WriteLine command, but I have no idea how to edit the prompt, or properly use the ReadLine function.

Can anyone point to a good breakdown of this, or source with comments? After I learn what I'm doing, I'll try and post some of those things that I get finished, and maybe you guys could tell me how it looks?

Appreciate the suggestion though, because isolating the logic does make more sense.

TheCPUWizard
February 14th, 2008, 09:22 PM
I've decided that you're right - constructing it as a console and then overlaying an entire forms system with the proper displays would indeed be a better way to learn to handle C#.

So I don't mean to be needy, but how in the world do I start this off? I assume I'll be including a using System; statement. My biook teaches you to use the WriteLine command, but I have no idea how to edit the prompt, or properly use the ReadLine function.

Can anyone point to a good breakdown of this, or source with comments? After I learn what I'm doing, I'll try and post some of those things that I get finished, and maybe you guys could tell me how it looks?

Appreciate the suggestion though, because isolating the logic does make more sense.

Go ahead and just try some simple things. Look at the samples on MSDN for Read,ReadLine, Write and WriteLine methods. Post when you have questions that you cant find answer for....

:wave: :wave: :wave: :wave: :wave: :wave:

wall_fall_down
February 15th, 2008, 12:33 AM
So I've just finished more than half of my statistics system in visual basic 6... Haha, can't seem to drop old habits.

When I install C# Visual Studio, I'll prolly figure out how to translate the two and maybe I can start using a language with brackets.

For now, though, I'm continuing to write my logic in VB6.

nelo
February 15th, 2008, 03:51 AM
So I've just finished more than half of my statistics system in visual basic 6... Haha, can't seem to drop old habits.

When I install C# Visual Studio, I'll prolly figure out how to translate the two and maybe I can start using a language with brackets.

For now, though, I'm continuing to write my logic in VB6.

Perhaps you might want to look at VB.NET before getting into C#. You might get a quicker grasp of the .NET Framework through VB.NET as the syntax would be somewhat familiar to you. There is a distinction between C# and the .NET Framework. You can be familiar with the C# language elements but you still need a basic knowledge of the .NET Framework in order to build any useful/substantial applications.

TheCPUWizard
February 15th, 2008, 08:00 AM
Perhaps you might want to look at VB.NET before getting into C#. You might get a quicker grasp of the .NET Framework through VB.NET as the syntax would be somewhat familiar to you.

Actually I usually recomment against that approach. The basic paradigms of a VB6 and VB.NET program are completly different. Even though the syntax is nealy identical. This tends to allow people to bring old habits (which may have been great) into the new environment (where they can be really bad).

By switching to something different, they tend to start thinking differently. So when I am doing training on .Net fundamentals, I will often start the series for VB6 programmers with C#, and start C++ programmers with VB.Net. Sounds radical, but I have found it effective for the few hundred people who have been through one of my training series....

K7SN
February 15th, 2008, 02:01 PM
The Express edition has everything you need, and you can directly download it if you dont want to wait for your frieneds copy on DVD (at first I thought you might not have internet access, then I realized you were positng on the net. :blush: ]

If it is going to be a pure text game, why not just write it as a console program, same as the original Adventure was done over thirty years ago (and I played it when it was first released).

Has it been 30 years? I have the source code on an 8" floppy which I have no way to read anymore. I hate to admit it but I had been programming for over 10 years when this "game" came out and it was the first real game I ever played on a computer. The version I had the source for was written in Fortran IV for a hobby Heathkit based on the LSI-03 by DEC Machine. I first played it on a Cyber Mainframe Circa 1977 and remember when the Apple ][ version came out which was expanded and had more tricks. I know that various versions of the source code are available, many have been converted to C and it would be a great place for wall_fall_down to start.

TheCPUWizard
February 15th, 2008, 02:04 PM
Has it been 30 years? I have the source code on an 8" floppy which I have no way to read anymore. I hate to admit it but I had been programming for over 10 years when this "game" came out and it was the first real game I ever played on a computer. The version I had the source for was written in Fortran IV for a hobby Heathkit based on the LSI-03 by DEC Machine. I first played it on a Cyber Mainframe Circa 1977 and remember when the Apple ][ version came out which was expanded and had more tricks. I know that various versions of the source code are available, many have been converted to C and it would be a great place for wall_fall_down to start.

K7SN - I would have taken this to a PM, but you do not have them enabled. I still have 8' floppy capability for DEC RX-01 and RX-02 floppies (Part of my 1968 DC PDP-8 restoration project). The PDP-8 was the first machine I learned on back in the fall of '72....

wall_fall_down
February 16th, 2008, 11:03 AM
Well, now I have all three of the express editions - Visual Basic 2008, Visual C# 2008, and Visual C++ 2008. At least my options are open.

But none of them say .NET. They are presented as just that, 2008 editions of each. Is that significant?



I'm figuring on still trying to code this in C#. However, since I understand VB to an extent, I have been writing Notepad source to pseudocode a lot of crap.

Keeping in mind I have VERY LIMITED EXPERIENCE with VB6 (>2 years) and have not finished any programs more complex than algebraic calculators, small databases for filing info about my job, and the odd practice program for understanding how it works.

In my time with programming, I have not learned too much, and would be completely confounded if anyone asked me to do something as complex as what I'm wanting to do with this game of mine.

So honestly, it doesn't matter which one I learn. I'm familiar with most basic syntax in VB, but all three will require a couple more cheap educational books, I'm sure.

Apparently my express version of VS08 came with the entire MSDN library for C++, C#, and VB. I've been looking into it quite a bit, and I'm glad you mentioned it, CPUWizard. Had you not, I'd have probably been ignoring it for a good while longer.

Thanks for all the input, folks. I'm sure once I start turning over on my own, your collective wisdom will be more than enough for any minor difficulties. For now, I'm going to read.

JonnyPoet
February 16th, 2008, 02:44 PM
...By switching to something different, they tend to start thinking differently. So when I am doing training on .Net fundamentals, I will often start the series for VB6 programmers with C#, and start C++ programmers with VB.Net. ....Thats really a good idea. As its really like what you explain here. Changing from VB6 to C# in my case brought me to think in a complete other way then I did in VB6 before. I'm still able to do both, but in btween I'm really missing a lot when doing something in VB6.( Most times when I have to do some service on some of my legacy code :rolleyes: ) And as I see here in the Forum people coming from C++ MFC sometimes have troubles to verify the differences needed in the design, because it looks them to be familar with this language, but they arn't.

So IMHO it must be easier to get the new ideas in, when you have to learn a language, which doesn't seem to you to be 'nearly the same I ever did before' and with learning the language then you also get the new design.
..But none of them say .NET. ...Hmm.. There is VB.net, C# itself is a .net language ASP.net too. So what you havn't ully understand about this terms? They all work with the framework. I would suggest you to really take a book and working with it ! Not reading, working. means doing all the examples. Even if you dont believe me this
a) You will have fun to understand what you are doing
b) you will see how different net languages are to old VB6
c) The new design methodology will give you hundrets of new additional design ideas for what you want to produce. So its not single one second lost

On the opposite you can do try and error getting a bit of what you want to get, finding out that your design was leading into a dead end starting again in a different way, fail again... until you are broken.. cannot be done is the standard end of that way. So decide, where you want to go.
BTW A very good learning book is MS Visual C# 2005 Step by Step.
A very cheap other good book is an e-book from apress named Ilustrated C#2005 also with lots of examples.

wall_fall_down
February 18th, 2008, 05:35 PM
So I've been reading the MSDN stuff page after page and i still can't find my answers. So I'm going to ask some of the basic stuff.

I've decided to code the console app first, but I really have no idea where to start. But let me explain what I mean.

I have the equations and limiting if statements and such written out for the basic player stats (health, energy, hunger, hydration, core temp) but I don't know where to put them - should they be in a class? Are they best as methods? I've included a small example that I've put into C#, but I haven't continued because there are little red error marks and it won't compile. So I need to figure out what I'm doing wrong first.


namespace Survival
{
class Program
{
static void Main(string[] args)
{
public class statScore()
{
public void healthStat()
{
string healthStr;
if (health = 0)
healthStr = "dead";
if (health >= 1 & health <= 20)
healthStr = "very unhealthy";

Console.WriteLine ("Player is" + healthStr + ".");

// continuing if statements for other stats
}
}
}
}
}




This is what I mean. I plan on putting the other stats into the same format, with a descriptive string and a decision block for what the string should be based on the int values of the stats themselves.

Is it even placed correctly? Should the ifs and such be in a method or a struct or what? I have no idea how to begin coding.

I won't be on to check replies for a long time, so if you have any questions abotu what I'm trying to get done, or goals, or if you just don't understand what the hell I'm talking about, be patient, and I'll get to answer you soon surely.

TheCPUWizard
February 18th, 2008, 06:14 PM
I have no idea how to begin coding.


Then you need to learn the fundamentals. Get a GOOD book on Object Oriented Design using C#, read it carefully, type in EVERY piece of code that is in the book. Run this code with the debugger, stepping through EVERY line. Do this until you are 100% certain that you have a full understanding of the material, BEFORE moving to the next section.

The time spend will be well invested. Skip this crutial step, and you will have major problems and struggles.

Good Luck. :wave: :wave: :wave:

JonnyPoet
February 18th, 2008, 06:47 PM
So I've been reading the MSDN stuff page after page and i still can't find my answers. So I'm going to ask some of the basic stuff.
You maybe have read but you havn't read for understanding, otherwise such things like you did couldn't occure.

namespace Survival{
class Program{
static void Main(string[] args){
public class statScore() // 1) a class isn't defined within a method
// 2) A class definition doesn't start with () you mix up the constructor with the class definition
// 3) Wrong naming against convention needs to be 'StatScore'

{
public void healthStat(){
string healthStr;
if (health = 0) // 1)comparing equal is ==
2) health undefined
healthStr = "dead";
if (health >= 1 & health <= 20)
healthStr = "very unhealthy";

Console.WriteLine ("Player is" + healthStr + ".");

// continuing if statements for other stats
}
}
}
}
}

Correct is
namespace Survival {
class Program {
static void Main(string[] args) {
StatScore stats = new StatScore();
}
}
public class StatScore{
private int health = 0;
public void healthStat(){
string healthStr = String.Empty;
if (health == 0)
healthStr = "dead";
if (health >= 1 & health <= 20)
healthStr = "very unhealthy";
Console.WriteLine ("Player is" + healthStr + ".");
// continuing if statements for other stats
}
}
}

This is how to designa class its designed in the same namespace but outside any method. The object created from this class is then created using the new keyword in the Main method.
You need to understand that a class is like a template. With a class you define the design of an object. When it is designed you need to create an object, otherwise you get nothing.
Its just if yo do a construction of a Lego stone. The drawing of the stone cannot be used for building a model of a house. But if you build a real Lego Stone using that drawing you can use this Lego stone object then to built a model of a house or whatever. So you need to design classes and to use them for creating object.

Now go back to the books. You have maybe done a fly over them but not really read and you couldn't have done the examples there or you will never do such a lot of basic errors. Read line by line and request yourself what you have read there and what it means.
Beginning a game needs to do lists for wich items needs to be controlled, what is influenced by the gamers actions and how is this influenced.This needs to be written down so you are able to look what you have decided to get. Whats the starting size of Health. Who has health- this will lead to a class like Player or Hero whatever.
How will the player loose health how will he recreate health - eating ? drinking- influence of poison, drugs, alcoholic, magic fluids, mana all this needs to be defined. So all what a hero can fid or loose may have influence on him if he uses it. So the thinks need to have Properties like example a class Bread and this has health +5; or a class PoisonedMashroom which has health -10; or whatever
so when defined all the classes with its properties you need a visible or invisible map where our hero may walk when the player chooses left, right, up down.
This map is basically an array where on different places you can have
stored objects or an event will happen... a lightning kills him, an enemy occurs, ..
The stats needs tobe corrected automatically at the end of each step.
Steps are created by keyboard input.
The step creates an output e.g. 'you are walking through gras' or you have found a chest Do you want open. This depends on where on your map ( array) you just are.
Ok this enough for the moment IMHO. o on learn your lesson. reread the books and find out all you havn't really understood.

JonnyPoet
February 18th, 2008, 06:59 PM
...read it carefully, type in EVERY piece of code ...are 100% certain that you have a full understanding of the material, BEFORE moving to the next section.
Thats the best advice someone can give you. Soe people tends to not understand what they read, but instead finding out which terms they dont understand they tend to go to the next chapter thinking some starnge ideas like.. maybe I'll find out what this all means in some of the next chapters. But thats totally wrong. Good Books are like building a house. They go from the bottom up. You will not find the basic stone in the roof. Never !
Go back into the basement. And if something isn't clear there show the given exmple and ask what you havn't understood. Small leaks in a wall can be filled but the fundamental things the basics needs to build a very solid ground.

wall_fall_down
February 18th, 2008, 10:11 PM
I obviously need a new book. The book I have is for the 2003 edition of VC#. For one, it explains what the different parts of the hello world program are, but for the next few chapters, it only shows instances of code not contained within anything.

It does not explain where you are supposed to begin coding or where you can use the different code it explains. It explains containers (namespaces and classes and etc) but it does not explain how these affect the structure of your program, or what you cannot put code into.

For instance, when I first started translating my algorithm (is that the correct term for pseudocode?) into C#, I attempted to put the code in its own new class. I found out this didn't work for some reason, and it highlighted the word Main in the program-created Main class.

If anyone knows the names of any in-depth guides that explain everything (the more pages the better) please don't hesitate to recommend them. I am willing to read anything that contains lots of information, but the book I have devotes a few paragraphs to each new topic, and that doesn't cover all the bases.

I didn't mean for the code sample I submitted before to look so sloppy, and I know variables need to be explicitly declared - I was in a hurry, and I don't want you guys thinking I'm that ignorant.

I'm not trying to get spoonfed the code for my entire project, because that goes against what I want out of my program. But I would like to be learning from a source that isn't halfway missing, or too inspecific to make you want to continue.


Thanks for the patience, though, I'm sure you all get tired of people like me. I hope to go into the city to our local Barnes & Noble to see if I can find a good, heavy C# manual that looks like good help.

This will probably be my last blind purchase on half.com, at least.

wall_fall_down
February 18th, 2008, 10:33 PM
I apparently forgot that I had specific questions. So now I'm going to ask them.

You have already seen that I am using a method for each player statistic. Would it be more efficient to remove the string variable within each method, and instead have the method return a string?

I'm assuming that if each method returned a string that described the numerical stat value (which I plan on never displaying to the player), it would mean less lines of code to write. But I still need my variables for the actual values, and I'm wondering where to declare them.

Should I declare all these variables before the methods, but inside the class? Is there a problem with declaring isolated variables within each method, and setting the values there?

Also, I just want to know if I'm correct in thinking that all my Console.Writeline and Readline commands should be within the Main class. It makes sense now to use the main class as the actual output and input channel, but is it necessary?

My book tells me nothing about either of those specific question. And from what I've found, neither does the MSDN. I apologize for my lack of ability here, but I promise I'll be poring over whatever new guide I decide to purchase.

Again, thanks for putting up with me. As soon as I get home I'll be building the stat code, so that it will be done with.

But I still have to code a very large 2D map grid with a method of movement, a vast set of actions, and perhaps patterned animal and weather code.

It'll be fun! I promise.

TheCPUWizard
February 18th, 2008, 10:35 PM
Go back and REREAD my previous post...


Get a GOOD book on Object Oriented Design using C#,


Most books on a language, explain the language, and how to implement the OO constructs that you should already understand in that specific language. This is a TOTALLY different focus from that you need!

wall_fall_down
February 18th, 2008, 10:53 PM
This is a TOTALLY different focus from that you need!

I'm assuming "that" was meant as "what."

And if it's a different focus than what I need, then why are you asking me to pursue it?

TheCPUWizard
February 19th, 2008, 07:53 AM
I'm assuming "that" was meant as "what."

And if it's a different focus than what I need, then why are you asking me to pursue it?

You stated you were looking for a good C# Book (in fact you mention that your current book is for .Net 1.1).

I[ stated that you need a Good Objected Oriented Programming Book preferrably one that uses C#.

That is the difference in focus. I do suggest that you do careful studying, and encourage you to gain knowledge, but one needs to learn the fundamental concepts (classes, inheritance, coupling, factoring, etc) before concentrating on "where the semicolons go".


See the difference???

I have been doing this for a looong time. Because I have always (tried to concentrate on the concepts and "philosophy" of the work, rather than on the implementation details, I am able to quickly start working in nearly any language at a reasonable level of competency.

JonnyPoet
February 19th, 2008, 07:56 AM
What is meant is, you need a good book for learning C# on the one side, which as I remembered I have already told you is for example MS Visual C#2005 Step by step from Microsoft press and on another viewpoint for getting solved your design questions you need a good book which explains OOP ( Object orientated programming ) IMHO from the basics how to build a class, what a class is, what is can do for you all that very basic stuff.

I would suggest look for one of the 'Dummies' series ( I'm not sure if you have this titles in English available but in German there is a couple of books all named 'for dummies' which translated means 'for idiots' So there is Learning C++ for dummies. OOP for dummies, VB for dummies and so on.
Very easy to understand and funny to read, not expensive, teaching a lot for very very beginners.

I think they are all existing in english too but I dont know the exact name. Maybe look in amazon or in a good bookstore.

wall_fall_down
February 19th, 2008, 06:31 PM
I get what you're saying now, guys.

I had begun to notice that these Visual Studio languages all seemed like different dialects of the same basic ideas.

I'll make sure to search for a book on OOP, before I look for any more C# guides.

That is, if the C# doesn't change - the volume I recently purchased is around 600 pages of instruction on C#. I assume that after reading up and applying myself to the ideas of OOP, I can use the 2003 educational information for C# and still get the same results?

Sorry about being so ignorant, I was never told where to begin my learning. However, I probably should have realized that a book which claims to teach you OOP in 3 chapters out of thirty may not be the best source of info.

Thanks for being easy on a new guy.

JonnyPoet
February 19th, 2008, 06:58 PM
I... I'll make sure to search for a book on OOP, before I look for any more C# guides..You need both boy...:rolleyes:
That is, if the C# doesn't change -..:D :D Good joke. All languages changes in the years or why MS would do them again and again ? Nobody would buy the 2008 compiler if its still 2003 stuff. We had framework 1.0 Now we have 3.5 in 2008 and 2.0 in 2005 IDE So this are different styles, different libraries... Sorry programming means learning , learning again, and.. learning all the time.
the volume I recently purchased is around 600 pages of instruction on C#...But as you also told in another thread not the best to learn. And VS 2005 is much easier to handle in my eyes as the 2003 IDE was. ..
I assume that after reading up and applying myself to the ideas of OOP, I can use the 2003 educational information for C# and still get the same results?If you have understood what you have read you can use each book in the world. But as long as you are very new to a language you need simple books with a very clear explanation. Thats why I prefer the MS book MS Visual C#2005 step by step. Alos a good one is Illustrated C# 2005 from Apress or SAMS teaching Visual C# in 24 hours. ( The 24 hours are a gimmic ) 24 days would be much more honest. But its a good book.

When questions with your books feel free to come back to ask.

TheCPUWizard
February 19th, 2008, 08:22 PM
Jonny makes a number of excellent points (as usual) i the previous post.

Regarding the 2003/2005/2008. Each newer version supports additional features, but 99%+ of the constructs from the previous version are still valid (even if no longer the "best" way to do things).

Regarding the comment:

Visual Studio languages all seemed like different dialects of the same basic ideas.


There is no such thing as a "Visual Studio Language" (neglecting the language used for writing macros inside the IDE). C#, VB.Net, C++, J#, C++/CLI can ALL be written with nothing more than NotePad.exe (or for the true machosist)

copy con >source.cs
.....
^z

and the .NET runtime (with or without the full SDK.

Visual Studio is a "shell" of an IDE that can be configured for nearly ANY type of environment. The exact same shell is used bg SQLServer (2005 and later), and is also available as a general developers workbench (for people like myself who develop custom programming languages).

wall_fall_down
February 19th, 2008, 08:37 PM
When I said Visual Studio Languages, I meant those language environments included in my VS2008 package. Sorry for saying it wrong.

I ran into the city (thirty seven miles one way) to pick out a good OOP guide, and instead of just getting a book explaining OOP I got a C# for Dummies book. It's around 400 pages of information, and the first two hundred are dedicated to learning about the most basic of things - essentially, OOP in C#.

I didn't buy a book that taught the "philosophies" of OOP (credited to CPUWizard) because they had one, and it lasted seventy pages. It used Ruby to teach these things that my most recent purchase also covers, and it had no source included with the book, something my Dummies manual also includes.

I am reading word for word the dummies manual, just as I tried to read the other C# book I have. So far I have learned much more about the actual structure of programs, and I can tell that this book will lead me into the next.

As you said CPUWizard, the 2003 version may be describing what used to work, but it is in no way the "updated" method of coding and I intend on sticking back a little money for a sixty-dollar hardback manual that delves deep into the language, titled something like "Visual C# 2008 and .NET 3.5."

However, I will likely not purchase it for a good while, or at least until I have a basic mastery of thinking in C#.

I truly appreciate the collective wisdom of those that have responded to my questions, corrected my thinking, and suggested how I teach myself. I will most likely be up all night putting as many of my ideas into C# as I can.

Hopefully I'll have some real questions worth asking pretty soon.

TheCPUWizard
February 19th, 2008, 09:03 PM
Sounds like you are getting on the right track. I do want to repeat something....

Type in the code from the samples....

If (especially during the early stage) you simply open up the copies that are provided on the CD/DVDm yu are many times more likely to miss key points.

The training classes I have given repeatedly show that people who have to look at each word, and type it in have MUCH better understanding.

(I even have a litle utility that I will run on "students" code to se if they did a pure copy/paste or typed it in. It is almost impossible to manually type in a sample and have a byte for byte match...this does not directly effect their grade, but it sure does give me some insight and predicitability as to how well they will do...)

JonnyPoet
February 20th, 2008, 04:05 PM
I ran into the city (thirty seven miles one way) to pick out a good OOP guide, and instead of just getting a book explaining OOP I got a C# for Dummies book. Congratulations. I think the time going to the city was a very well investment. I think, I menztioned this series.

I am reading word for word the dummies manual, just as I tried to read the other C# book I have. ...
This is a very valueable method. But dont forget to reqest yourself after each paragraph what has this told me. Dont only for example read: ' a class in C# is always a reference type a structure is a value type' when you read this ask yourself. What does that mean for my code. if you dont know then find out what a reference type is and what a valuetype is. Read the explanation about this, sure but if you have read the explanation you should knw what this means and do the examples for that.

You will have quick progress as more as you are using step by step going through the code looking whats going on reading what the Fields are containing.
Everytime type them yourself ..
Never only open a codeexample and reading it. ! Thats nearly worthless.
Typing the code means duplicting it by doing. Doing this you will feel after a while that you get understanding during typing the example, what it does and why it does what it does. Reading code only or typing it yourself is the same difference as only looking to a picture where a pretty woman is kissed or kissing this girl yourself. And... believe me, often tried ..THATS a difference :D

...on sticking back a little money for a sixty-dollar hardback manual that delves deep into the language, titled something like "Visual C# 2008 and .NET 3.5."If you re ready for this I'll suggest you a good online buyable book. Its much cheaper and worth its money.
Whenever needed come back to ask.:wave: