淡若轻风

博客园 首页 新随笔 联系 订阅 管理

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)**的概念:

  • 值类型structintdoublebool):存储在栈上,赋值时会复制值。
  • 引用类型classstringobject):存储在堆上,赋值时会复制引用。

示例:

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 引入了 getset 访问器,使类的字段更加安全和可控。

示例:

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 提供了 ArrayListHashtable 等集合,位于 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 的重要特点

  1. 完整的 OOP 支持(类、继承、接口等)
  2. 基本类型系统(值类型 vs. 引用类型)
  3. 异常处理(try-catch-finally)
  4. 委托和事件机制
  5. 属性和索引器
  6. 基本集合支持(ArrayList、Hashtable)
  7. foreach 语法简化集合遍历
  8. using 语句进行资源管理
  9. 命名空间与程序集支持
  10. 所有类型派生自 object

备注:以上内容来自网络,个人整理集中记录在自己的博客中。只用一样东西,却不知道它究竟有什么,不好。

试着总结记录。

posted on 2025-01-24 01:19  淡若轻风  阅读(43)  评论(0)    收藏  举报