C # 1.0

  • C# 1.0 came out in 2002, when I was 11 years old and I was in fifth grade.
  • On a sunny day, a guy named Anders invented c#. This is not the first time that Anders has designed a programming language. He also designed Delphi at Borland.
  • He was so experienced that c# was born in a golden light.

lesson

C# is a lot smarter with the lessons of c++ and Java, for example:

  • Enforces if () to be a Boolean expression
  • Structs create value types and classes create reference types
  • Virtual and non-virtual methods are allowed

As of May 28, 2021, c# is a pure object-oriented programming language. Silently reading this sentence, a ray of doubt flashed through my mind, um… I vaguely remember some mention of functional programming in c#. That’s all, let’s just say…


C# three features, interview necessary, recite ten times

  • inheritance
  • encapsulation
  • polymorphism

Ah? Delegates and events, surprisingly, are component-based programming improvements. How do this words speak


Each programming language has its own runtime:

  • Visual Basic: VB Run
  • Java: Java Virtual Machine, JVC
  • c#: CLR

The CLR is the runtime used by all.net programming languages, which means that the CLR is not just a runtime for c#.


Visual Basic, Visual Basic, and Managed c++ NET programming language?


The c# code is compiled by the c# compiler to generate an exe or DLL. You can use ildASM.exe to open it directly. What’s inside is the IL code. IL code, the book says, is like object-oriented machine code.


The runtime CLR contains something called the just-in-time compiler.

When the program starts running, the just-in-time compiler will turn the IL code into native code, which is machine code.


IL code, also known as managed code.


The runtime CLR includes other things, such as:

  • Garbage collector: Cleans up managed memory that is no longer referenced
  • Debugger extension: allows debugging between programming languages, such as starting a debugging session in Visual Basic and continuing debugging in c# libraries
  • Threading utility: Create threads on the underlying platform

Do not understand the interpretation of the debugger extension. If it is pure running, it has nothing to do with debugging. If it’s debug state, isn’t cross-language debugging only done by debuggers such as WinBG, VS enough? What about closing debugger extensions in the runtime CLR?


The first version of the.NET Framework, 1.0, was huge, with over 3000 classes, broken down into chunks

  • Windows Forms
  • ASP.NET Web Forms
  • ASP.NET Web Services
  • .NET Remoting
  • Enterprise Services