
Originally Posted by
iamweasel
Why not? Have you coded in C# to fully support your statement above? If not, grab a "C# for Dummies" book and you'll find a very good learning curve for OOP under C# or VB .NET.
I’m still new in C#, but we used to write .NET application under C++ and Python… last couple of month ago, I attended ECMA (40 hours sessions) regarding the implementation of .NET project, I was to get in touched with this C# but not using any of those Dummies you recommend, but I’m studying on ECMA book and videos where they distribute to us… most of this book and videos are explained how Microsoft transform this into C# language, and what does really covers on its OOP and yes! Microsoft C# is still incomplete; I’m referring to C#2.0 but not C#3.0, I haven’t seen it yet.

Originally Posted by
iamweasel
I don't see your point here. MS .NET CLR is basically C++ underneath but you definitely don't have to touch that level (C++) just to learn OOP in C#! Again, grab a "C# for Dummies" book and I doubt it will go as far as discussing C++ stuff.
CLR, is not totally C++ but its rather a part of implementation of ECMA (long time ago in history of CLI), you even found a lot of CLS rules on their documentation, and yes, it may be written in C++ but it mixed with various XML’s on how those different language able to run and exchange data’s under .NET (Java, C++, VB, Python and more…) Please keep in mind that you study C# to create application in .NET and C# alone is already OOP style, you don’t have any ideas how it was being called rather in a way of multiple inheritance, interfaces , derived classes and more, like in the case of throwing exceptions? My goodness… that’s already implementation of OOP under ECMA standard, you can only figure it out by looking on different documentations that explains plain C++ OOP style.

Originally Posted by
iamweasel
Again, back to the question, have you coded a project launched in production using C# or any of its .NET alternatives to support your statement above?
Yes… in our various offshore projects, visit AVEVA - Engineering technology for the Plant and Marine industries for more info, just for in case we will be having a road show somewhere in harbourfont Singapore this Wednesday…regarding our new product.
You may probably learn OOP in C# but not exactly learning about what is “OOP”, coz in the first place C# OOP is made to interact with CLR, and it already provides you a lot of modules that written under OOP which is not visible to the programmer on how it was implemented.
C++ Version:
Code:
#include <iostream>
class MyClass
{
public: void myMethod()
{
std::cout << "MyClass under myMethod";
}
};
void main()
{
MyClass NewClass;
NewClass.myMethod();
}
C# Version:
Code:
using System;
class MyClass
{
public void myMethod()
{
Console.WriteLine("MyClass under myMethod");
}
}
class EntryPoint
{
public static void Main()
{
MyClass NewClass = new MyClass();
NewClass.myMethod();
}
}
Simple class but the difference are too obvious... how much more on large phase of development?
Take note that it is valid also in C# by calling class methods directly without knowing how it is going to be on our memory resources.
Further study: EntryPoint Class (Microsoft.VisualStudio.Tools.Applications.Runtime )
Finally, C# partly includes C++ but not exactly came from, and partly uses Java language style… the rest of C# is created in the house of uncle BILL… but since its running on top of CLI the combination of CLR, CLS, CTS and CIL, learning OOP in C++ is pretty much advantage… well, it’s what I figured out.