C# 1.0 是 2002 年随 .NET Framework 1.0 一起发布的第一个版本。
虽然它是一个相对基础的语言版本,但仍然引入了许多重要的特性,使其成为当时一个强大且现代的编程语言。
C# 1.0 的主要特性
1. 面向对象编程(OOP)支持
C# 1.0 是一门完全支持面向对象的语言,包括以下 OOP 特性:
- 类(Class)和对象(Object)
- 继承(Inheritance)
- 封装(Encapsulation)
- 多态(Polymorphism)
- 抽象(Abstraction)
示例:
public class Person { public string Name; public int Age; public void Introduce() { Console.WriteLine($"Hi, my name is {Name}, and I am {Age} years old."); } }
2. 值类型和引用类型
C# 1.0 引入了**值类型(Value Types)和引用类型(Reference Types)**的概念:
- 值类型(
struct、int、double、bool):存储在栈上,赋值时会复制值。 - 引用类型(
class、string、object):存储在堆上,赋值时会复制引用。
示例:
int a = 10; // 值类型 string name = "Alice"; // 引用类型
3. 结构体(Structs)
C# 1.0 引入了结构体(struct),类似于类,但它是值类型,适用于轻量级对象。
示例:
public struct Point { public int X; public int Y; }
4. 接口(Interfaces)
接口是 C# 1.0 中的重要特性,支持定义行为契约,使类实现多个功能。
示例:
public interface IMovable { void Move(); } public class Car : IMovable { public void Move() { Console.WriteLine("The car is moving."); } }
5. 委托(Delegates)
委托提供了类型安全的函数指针,用于回调机制,早期主要用于事件处理和异步编程。
示例:
public delegate void MessageHandler(string message); public class Messenger { public void ShowMessage(string message) { Console.WriteLine(message); } } class Program { static void Main() { Messenger messenger = new Messenger(); MessageHandler handler = new MessageHandler(messenger.ShowMessage); handler("Hello, Delegates!"); } }
6. 事件(Events)
基于委托,C# 1.0 支持事件机制,广泛用于 GUI 和通知系统。
示例:
public class Button { public event EventHandler Clicked; public void OnClick() { if (Clicked != null) { Clicked(this, EventArgs.Empty); } } }
7. 异常处理(Exception Handling)
C# 1.0 提供了现代化的异常处理机制,支持 try-catch-finally 块。
示例:
try { int result = 10 / 0; } catch (DivideByZeroException ex) { Console.WriteLine("Cannot divide by zero."); } finally { Console.WriteLine("Execution completed."); }
8. 属性(Properties)
C# 1.0 引入了 get 和 set 访问器,使类的字段更加安全和可控。
示例:
public class Person { private string name; public string Name { get { return name; } set { name = value; } } }
9. 索引器(Indexers)
索引器允许对象像数组一样使用索引访问。
示例:
public class Sample { private int[] numbers = new int[5]; public int this[int index] { get { return numbers[index]; } set { numbers[index] = value; } } }
10. foreach 迭代语法
C# 1.0 引入了 foreach 循环,简化了集合的遍历操作。
示例:
int[] numbers = { 1, 2, 3, 4, 5 }; foreach (int num in numbers) { Console.WriteLine(num); }
11. using 语句(资源管理)
C# 1.0 引入了 using 语句,用于管理实现 IDisposable 接口的资源,确保资源正确释放。
示例:
using (System.IO.StreamWriter writer = new System.IO.StreamWriter("file.txt")) { writer.WriteLine("Hello, World!"); }
12. 静态类和静态成员
C# 1.0 允许创建静态成员和静态类,用于工具类和常量管理。
示例:
public static class MathHelper { public static int Add(int a, int b) { return a + b; } }
13. 程序集和命名空间
C# 1.0 支持命名空间管理代码,避免命名冲突。
示例
namespace MyApp { public class Program { public static void Main() { Console.WriteLine("Hello, C# 1.0!"); } } }
14. 基本集合类型
C# 1.0 提供了 ArrayList、Hashtable 等集合,位于 System.Collections 命名空间中(泛型在 C# 2.0 中引入)。
示例:
System.Collections.ArrayList list = new System.Collections.ArrayList(); list.Add("C#"); list.Add(100);
15. object 基类
所有 C# 类型(值类型和引用类型)都派生自 System.Object,提供基本的方法,如 ToString()、Equals()、GetHashCode() 等。
示例:
object obj = 42; Console.WriteLine(obj.ToString()); // 输出: "42"
总结:C# 1.0 的重要特点
- 完整的 OOP 支持(类、继承、接口等)
- 基本类型系统(值类型 vs. 引用类型)
- 异常处理(try-catch-finally)
- 委托和事件机制
- 属性和索引器
- 基本集合支持(ArrayList、Hashtable)
foreach语法简化集合遍历using语句进行资源管理- 命名空间与程序集支持
- 所有类型派生自
object
备注:以上内容来自网络,个人整理集中记录在自己的博客中。只用一样东西,却不知道它究竟有什么,不好。
试着总结记录。
浙公网安备 33010602011771号