学习c#的第二天

目录

[C# 基本语法](# 基本语法)

[using 关键字](#using 关键字)

[class 关键字](#class 关键字)

[C# 中的注释](# 中的注释)

成员变量

成员函数

类的实例化

标识符

[C# 关键字](# 关键字)


C# 基本语法

C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中。

例如,以 Rectangle(矩形)对象为例。它具有 length 和 width 属性。根据设计,它可能需要接受这些属性值、计算面积和显示细节。 让我们来看看一个 Rectangle(矩形)类的实现,并借此讨论 C# 的基本语法:

cs 复制代码
using System;

namespace Shapes
{
    public class Rectangle
    {
        // 成员变量,表示矩形的长度和宽度
        private double length;
        private double width;

        // 构造函数,用于初始化矩形的长度和宽度
        public Rectangle(double l, double w)
        {
            length = l;
            width = w;
        }

        // 方法,用于计算矩形的面积
        public double CalculateArea()
        {
            return length * width;
        }

        // 方法,用于显示矩形的长度和宽度,面积
        public void DisplayDetails()
        {
            Console.WriteLine("长度: " + length);
            Console.WriteLine("宽度: " + width);
            Console.WriteLine("面积: " + CalculateArea());
        }
    }

    class Program
    {
        static void Main()
        {
            // 创建一个 Rectangle 对象
            Rectangle rect = new Rectangle(5, 3);

            // 调用方法
            rect.DisplayDetails();
        }
    }
}

在上面的示例中,我们首先定义了一个Rectangle类,并声明了该类的成员变量、构造函数和方法。然后,在Program类的Main方法中,我们创建了一个Rectangle对象,并调用了它的DisplayDetails方法。

using 关键字

在C#中,using关键字有两种常见的用法:

1、引入命名空间:通过using关键字可以引入一个命名空间,使得在当前代码文件中可以直接使用该命名空间下的类型而不需要使用完整的限定名称。例如:

cs 复制代码
using System;

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

在这个例子中,using System;语句引入了System命名空间,因此在Main方法中可以直接使用Console类而不需要写成System.Console.WriteLine("Hello, World!");。

2、资源管理:在C#中,using语句还可以用于资源管理,特别是在处理需要显式释放的资源(比如文件、数据库连接等)时非常有用。例如:

cs 复制代码
using (var file = new System.IO.StreamWriter("example.txt"))
{
    file.WriteLine("Hello, World!");
}

在这个例子中,using语句创建了一个作用域,在作用域结束时会自动调用资源对象的Dispose方法,这样可以确保资源被及时释放,避免资源泄漏。

总之,using关键字在C#中有着重要的作用,既用于简化代码(引入命名空间),也用于资源管理,能够提高代码的可读性和可靠性。

**注意:**一个程序可以包含多个 using 语句。

class 关键字

在 C# 中,class 是一个关键字,用于定义一个类。类是面向对象编程的基本概念,用于描述一类对象的属性和行为。下面是 class 关键字的基本用法:

cs 复制代码
public class MyClass
{
    // 类的成员变量
    private int myField;

    // 类的构造函数
    public MyClass(int value)
    {
        myField = value;
    }

    // 类的方法
    public void MyMethod()
    {
        Console.WriteLine("MyField: " + myField);
    }
}

在上面的示例中,class 关键字用于定义了一个名为 MyClass 的类。类体中包含了类的成员变量 myField、构造函数 MyClass 和方法 MyMethod。这个类可以用来创建 MyClass 类型的对象,并访问其中定义的成员。

在面向对象编程中,类是一种模板或蓝图,用于创建具体的对象。类可以定义对象的属性(成员变量)和行为(方法),并且可以被实例化为具体的对象进行使用。使用 class 关键字可以为程序提供结构化和模块化的设计,从而方便地组织和管理代码。

总之,class 是 C# 中用于定义类的关键字,它是面向对象编程的基础之一,能够帮助我们更好地组织和抽象程序中的各种数据和行为。

C# 中的注释

注释在程序中起着非常重要的作用,它能够帮助其他开发人员理解代码的意图和功能,也可以提高代码的可维护性和可读性。

在C#中,有三种常见的注释方式:单行注释、多行注释和XML文档注释。

1、单行注释:使用双斜杠 // 进行单行注释。例如:

cs 复制代码
// 这是单行注释
int x = 5;  // 这也是单行注释

2、多行注释:使用斜杠加星号 /* */ 进行多行注释。例如:

cs 复制代码
/*
这是
多行
注释
*/
int y = 10;  /* 这也是多行注释 */

3、XML文档注释:XML文档注释用于编写特定格式的注释,以便生成代码文档。XML文档注释以三个连续的斜杠 /// 开始,并且通常用于注释类、方法、属性等。例如:

XML 复制代码
/// <summary>
/// 这是一个方法的说明
/// </summary>
/// <param name="x">参数x的说明</param>
/// <returns>返回值的说明</returns>
int MyMethod(int x)
{
    return x * 2;
}

XML文档注释通常包含 <summary>、<param>、<returns> 等标签,用于描述方法或成员的作用、参数和返回值等信息。

成员变量

在 C# 中,成员变量是指定义在类或结构体中的变量,也可以称为字段(field)。成员变量用于存储对象的状态信息,每个类的对象都有自己的一组成员变量,这些变量描述了对象的特征和数据。成员变量可以具有不同的访问修饰符,如 public、private、protected 等,来控制对其访问的权限。

以下是一个简单的示例,展示了在C#中定义成员变量的方式:

cs 复制代码
public class Person
{
    public string name;  // 公有成员变量
    private int age;      // 私有成员变量

    public void SetAge(int newAge)
    {
        age = newAge;     // 可以在类的方法中访问私有成员变量
    }
}

在这个示例中,Person 类包含了两个成员变量 name 和 age。name 是公有成员变量,可以被外部访问,而 age 是私有成员变量,只能在类的内部访问。通过定义不同访问权限的成员变量,可以控制对象数据的封装性和访问权限,从而确保对象数据的安全性和一致性。

成员变量是面向对象编程中非常重要的概念,它们描述了对象的状态和属性,是对象封装的重要组成部分。

成员函数

在 C# 中,成员函数指的是定义在类或结构体中的函数,也可以称为方法(method)。成员函数用于描述对象的行为和操作,它们可以访问类的成员变量,并且可以执行特定的功能。C# 中的成员函数可以具有不同的访问修饰符,如 public、private、protected 等,来控制对其访问的权限。

以下是一个简单的示例,展示了在C#中定义成员函数的方式:

cs 复制代码
public class Calculator
{
    private int result;  // 私有成员变量

    public void Add(int a, int b)
    {
        result = a + b;  // 计算结果并存储到成员变量中
    }

    public int GetResult()
    {
        return result;  // 返回存储的结果
    }
}

在这个示例中,Calculator 类包含了两个成员函数 Add 和 GetResult。Add 方法用于将两个数相加并将结果存储到成员变量 result 中,而 GetResult 方法用于获取存储的结果并返回它。这两个方法描述了一个简单的计算器对象的行为。

通过定义成员函数,可以将对象的行为和功能封装起来,使得对象的使用者可以通过调用方法来实现特定的操作,而不需要了解方法内部的具体实现细节。成员函数可以访问对象的成员变量,也可以调用其他成员函数,从而实现复杂的功能。

类的实例化

类的实例化就是根据已有的类(class)来创建该类的一个对象(object)。在面向对象的编程中,类定义了对象的属性和行为,而实例化则是根据这个定义来创建具体的对象,使得我们可以使用这个对象来访问类的属性和方法。

**打个比方:**你设计的飞机模型就相当于程序中的类,而生产出来的飞机就是对象。实例化就好像是通过飞机模型来生产真正的飞机一样,它允许我们在程序中创建出具体的对象,从而可以利用这些对象来完成各种任务。

cs 复制代码
// 创建一个 Rectangle 对象
Rectangle rect = new Rectangle(5, 3);

标识符

标识符是用来命名类、变量、函数或其他用户定义的项目的名称。在C#中,标识符的命名必须遵循一些基本规则,这有助于确保代码的清晰和一致性。以下是C#中标识符的命名规则:

  1. 标识符必须以字母、下划线或@符号开头,后面可以跟随一系列的字母、数字(0-9)、下划线(_)或@符号。
  2. 标识符中的第一个字符不能是数字。
  3. 标识符中不得包含嵌入的空格或特殊符号,例如?-+!#%^&*()[]{} .;:"" '/ \等。
  4. 标识符不能是C#关键字,除非它们带有@前缀。例如,@if是有效的标识符,但if不是,因为if是关键字。
  5. 标识符是区分大小写的,大写字母和小写字母被视为不同的字符。
  6. 标识符不能与C#的类库名称相同。

C# 关键字

关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。

在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字(contextual keywords)。

下表列出了 C# 中的保留关键字(Reserved Keywords)和上下文关键字(Contextual Keywords):

|------------------|-----------|-----------|------------|------------------------|-----------------------|----------------|
| 保留关键字 |||||||
| abstract | as | base | bool | break | byte | case |
| catch | char | checked | class | const | continue | decimal |
| default | delegate | do | double | else | enum | event |
| explicit | extern | false | finally | fixed | float | for |
| foreach | goto | if | implicit | in | in (generic modifier) | int |
| interface | internal | is | lock | long | namespace | new |
| null | object | operator | out | out (generic modifier) | override | params |
| private | protected | public | readonly | ref | return | sbyte |
| sealed | short | sizeof | stackalloc | static | string | struct |
| switch | this | throw | true | try | typeof | uint |
| ulong | unchecked | unsafe | ushort | using | virtual | void |
| volatile | while | | | | | |
| 上下文关键字 |||||||
| add | alias | ascending | descending | dynamic | from | get |
| global | group | into | join | let | orderby | partial (type) |
| partial (method) | remove | select | set | |

相关推荐
懒惰才能让科技进步39 分钟前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
love_and_hope1 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen1 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
小码编匠1 小时前
一款 C# 编写的神经网络计算图框架
后端·神经网络·c#
芊寻(嵌入式)1 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
hong1616882 小时前
跨模态对齐与跨领域学习
学习
阿伟来咯~2 小时前
记录学习react的一些内容
javascript·学习·react.js
Suckerbin3 小时前
Hms?: 1渗透测试
学习·安全·网络安全
水豚AI课代表3 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
聪明的墨菲特i3 小时前
Python爬虫学习
爬虫·python·学习