So far I’ve learnt that a type is a thing (!) like, a button for example. So a type defines its properties and behaviours. So far so good, I think.
Then I learnt that you define the type using a class – which is sort of a high level definition of something (like a Cat is a class where as Fatty is an instance of that class).
Next I learnt that classes have properties and behaviours (properties of a cat might be that it has four legs, I’m not sure that Roonies udders come into this) and behaviours which are described by member methods/functions such as meowing or scratching the carpet or looking slightly mad.
Types were next even though I thought types were things, they seem to be pretty easy, you can have intrinsic/inbuilt ones such as int and char and then user defined ones. Okayyy, seems to make sense.
#Regions were quite smart, part of Visual Studio and they allow you to group parts of your code together so you can collapse them in the IDE if you never need to look at them.
So next, I had to get my head round classes entirely encapsulating the characteristics and behaviour of something. The example in the book was that if you wanted to sort a list, you just tell it to sort itself. Lots of these are built in and you don’t need to worry about how it does something, just that it has. Hmm. Seems just like using new words to say what code already does.
Constructors seem pretty basic. When you make a new instance of a class it calls a member method of that class which sets it up. You can let .net do that or you can override it with your own code.
So, it sort of makes sense so far. But I can hear a little voice in the back of my head saying “wtf? I understand these things but *what* is the advantage of all of this?”. I need to see practical examples later on of how this actually benefits coding. It’s a bit like reuse, everyone talks the talk about making your code reusable, but who the hell has ever reused code?!!?!
I think from now on things are going to get more complicated, sighhhh. I just want to code. The problem of not being a dedicated coder is that things get pushed out of your head by new things! So in two months time am I even going to remember what the hell an intrinsic type is?