C#入门(2): namespace、类

namespace

在C#中,名称空间(Namespace)是一种包含类、结构、接口、枚举和委托的容器。名称空间可以帮助我们组织代码,并防止命名冲突。例如,两个开发团队可能都创建了名为File的类,但如果这两个类位于不同的名称空间中,那么就不会出现冲突。

命名空间的声明如下:

csharp 复制代码
namespace MyNamespace
{
    // class, struct, interface, enum, delegate
    class MyClass
    {
        // Class members go here
    }
}

在这个例子中,MyClass类位于MyNamespace名称空间中。

如果想在你的代码中使用其他名称空间中的类或其他类型,你可以使用using关键字:

csharp 复制代码
using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello, World!");
    }
}

在这个例子中,我们使用了System名称空间中的Console类,而无需使用完全限定的名称System.Console.WriteLine()

名称空间也可以嵌套:

csharp 复制代码
namespace Namespace1
{
    namespace Namespace2
    {
        class MyClass
        {
            // ...
        }
    }
}

在这个例子中,MyClass类位于Namespace1.Namespace2名称空间中。

总的来说,名称空间是一种很有用的工具,可以帮助我们组织和管理代码,以及避免命名冲突。

在C#中,类(Class)是用来定义对象的蓝图或模板。它是面向对象编程(OOP)中的一个基本构造,C#类关键字class。一个类可以包含字段(数据成员)和方法(成员函数)。

类的声明

类的定义如下:

csharp 复制代码
public class MyClass
{
    // Fields, properties, methods and events go here...
}

在这个例子中,MyClass就是一个类的名称。类可以包含以下成员:

  • 字段(Fields):字段是类中定义的变量。数据对象或信息是通过这些字段存储的。

  • 属性(Properties):属性是一种成员,它提供了灵活的机制来读取、写入或计算类的私有字段的值。

  • 方法(Methods):方法是包含在类中的一段代码。这是用来执行某些操作的。

  • 事件(Events):事件是当特定的操作发生时,类会提供的通知机制。

以下是一个类的例子,包含字段和方法:

csharp 复制代码
public class Person
{
    // Field
    private string name;

    // Property
    public string Name 
    {
        get { return name; }
        set { name = value; }
    }

    // Method
    public void Introduce()
    {
        Console.WriteLine("Hello, my name is " + name);
    }
}

要创建类的实例或对象,你可以使用 new 关键字:

csharp 复制代码
Person person = new Person();
person.Name = "John";
person.Introduce(); // Outputs "Hello, my name is John"

总的来说,类是C#中用来封装数据和行为的关键构造。通过使用类,你可以创建复杂的系统,同时保持代码的可管理性和可重用性。

构造函数

构造函数是一种特殊的方法,当创建类的新实例时,它会被自动调用。构造函数的名称必须与类名相同,并且它不能有任何返回类型。

csharp 复制代码
public class Person
{
    private string name;

    // Constructor
    public Person(string name)
    {
        this.name = name;
    }

    public void Introduce()
    {
        Console.WriteLine("Hello, my name is " + name);
    }
}

// 使用构造函数创建对象
Person person = new Person("John");
person.Introduce(); // Outputs "Hello, my name is John"

在上面的例子中,Person类有一个接受一个参数的构造函数。当我们使用new关键字创建Person类的新实例时,我们需要提供一个参数(在这个例子中是一个字符串)。

继承

继承是面向对象编程的一个重要特性,它可以让你创建一个新的类,继承另一个类的属性和方法。继承的类被称为子类或派生类,被继承的类被称为父类或基类。

csharp 复制代码
public class Animal
{
    public void Eat()
    {
        Console.WriteLine("Eating...");
    }
}

public class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine("Barking...");
    }
}

// 创建Dog类的对象
Dog dog = new Dog();
dog.Eat(); // Outputs "Eating..."
dog.Bark(); // Outputs "Barking..."

在上面的例子中,Dog类继承了Animal类。这意味着Dog类的实例可以访问Animal类的所有公共方法和属性。在这个例子中,我们看到Dog类的实例可以调用Eat方法(从Animal类继承)和Bark方法(在Dog类中定义)。

访问修饰符

访问修饰符定义了类成员的可访问性。C#支持以下访问修饰符:

  • public:公共成员可以在任何地方被访问。
  • private:私有成员只能在其声明的类中访问。
  • protected:受保护的成员可以在其声明的类中或者在同一个类的派生类中访问。
  • internal:内部成员可以在同一程序集的任何类中访问。
  • protected internal:受保护的内部成员可以在同一程序集的任何类中或者在同一个类的派生类中访问。

抽象类和接口

抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类可以包含抽象方法(没有实现的方法)和非抽象方法。

接口是一种完全抽象的类型,它只能包含未实现的方法。一个类可以实现一个或多个接口。

以上就是C#中的类的更深入的介绍。通过使用类,你可以创建复杂的数据结构,实现代码重用和封装,以及利用面向对象编程的其他优点。

相关推荐
fathing5 分钟前
c# 调用c++ 的dll 出现找不到函数入口点
开发语言·c++·c#
wyh要好好学习2 小时前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech2 小时前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
咩咩觉主3 小时前
尽量通俗易懂地概述.Net && U nity跨语言/跨平台相关知识
unity·c#·.net·.netcore
yngsqq3 小时前
035集——BOUNDARY获取图形外轮廓(CAD—C#二次开发入门)
开发语言·javascript·c#
墨笺染尘缘4 小时前
Unity——对RectTransform进行操作
ui·unity·c#·游戏引擎
IT规划师12 小时前
开源 - Ideal库 - 常用枚举扩展方法(二)
开源·c#·.net core·ideal库·枚举转换
吾与谁归in16 小时前
【C#设计模式(8)——过滤器模式(Adapter Pattern)】
设计模式·c#·过滤器模式
子不语16 小时前
C#程序开发,检测当前电脑已经安装的软件目录
开发语言·c#·安装·列表·软件
一步一个foot-print17 小时前
C# unity 星期几 年月日控制
unity·c#