C#编程入门基础,感受编程的乐趣*

以使用Visual Studio 2022为例子如何创建项目

C# 环境

在这一章中,我们将讨论创建 C# 编程所需的工具。我们已经提到 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨论运行 C# 程序的可用工具之前,让我们先了解一下 C# 与 .Net 框架之间的关系。

.Net 框架(.Net Framework)

.Net 框架是一个创新的平台,能帮您编写出下面类型的应用程序:

  • Windows 应用程序
  • Web 应用程序
  • Web 服务

.Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。

.Net 框架由一个巨大的代码库组成,用于 C# 等客户端语言。下面列出一些 .Net 框架的组件:

  • 公共语言运行库(Common Language Runtime - CLR)
  • .Net 框架类库(.Net Framework Class Library)
  • 公共语言规范(Common Language Specification)
  • 通用类型系统(Common Type System)
  • 元数据(Metadata)和组件(Assemblies)
  • Windows 窗体(Windows Forms)
  • ASP.Net 和 ASP.Net AJAX
  • ADO.Net
  • Windows 工作流基础(Windows Workflow Foundation - WF)
  • Windows 显示基础(Windows Presentation Foundation)
  • Windows 通信基础(Windows Communication Foundation - WCF)
  • LINQ

C# 的集成开发环境(Integrated Development Environment - IDE)

微软(Microsoft)提供了下列用于 C# 编程的开发工具:

  1. Visual Studio

    • 微软的旗舰IDE(集成开发环境),提供全面的开发工具集,支持C#以及其他多种编程语言。
  2. Visual Studio Code

    • 轻量级的代码编辑器,虽然不如Visual Studio功能全面,但非常灵活,支持C#开发,并且可以通过插件扩展功能。
  3. .NET SDK

    • 包含编译器、库和工具,用于.NET应用程序的开发,C#是.NET的主要编程语言之一。
  4. ReSharper

    • 一个Visual Studio扩展,提供代码质量分析、快速修复以及生产力提升工具。
  5. Roslyn

    • .NET Compiler Platform("Roslyn")提供编译器API,允许开发者编写代码分析器和代码生成器。
  6. MSBuild

    • 微软的构建系统,用于编译和打包C#项目。
  7. NuGet

    • 包管理器,用于.NET项目,可以轻松地管理和安装第三方库。
  8. Entity Framework

    • 一个对象关系映射器(ORM),用于简化数据库访问和操作。
  9. PowerShell

    • 微软的命令行shell和脚本环境,也可用于自动化C#项目中的某些任务。
  10. Azure DevOps

    • 提供项目管理和持续集成/持续部署(CI/CD)服务,支持C#项目的开发和部署。
  11. Visual Studio Team Services (VSTS)

    • 现在称为Azure DevOps Services,提供版本控制、项目管理和团队协作工具。
  12. C# Interactive

    • 一个交互式C#环境,允许开发者在Visual Studio或Visual Studio Code中直接编写和运行C#代码片段。

些工具和服务共同构成了微软支持C#开发的强大生态系统,使得开发者可以高效地进行C#程序的开发、测试、部署和维护。

C# 介绍

C#(发音为 "C-sharp")是一种由微软开发的、运行在 .NET 框架上的现代化、面向对象的编程语言。C# 结合了 C++ 的高性能和 Java 的简洁性,同时增加了许多新的功能和改进。它被广泛用于开发桌面应用、web 应用、移动应用和游戏等。

介绍下基本c#类型

好的,下面我将介绍C#的数据类型、运算符、分支语句和数组,并提供相关的代码示例。

### 数据类型

C# 提供了多种内置数据类型,可以分为以下几类:

1. **值类型**(Value Types)
   - **整数类型**:`int`、`long`、`short`、`byte`
   - **浮点类型**:`float`、`double`
   - **十进制类型**:`decimal`
   - **字符类型**:`char`
   - **布尔类型**:`bool`
2. **引用类型**(Reference Types)
   - **字符串**:`string`
   - **数组**:如 `int[]`
   - **类**:如 `class`
   - **接口**:如 `interface`
   - **委托**:如 `delegate`
3. **指针类型**(Pointer Types):仅用于不安全代码

### 运算符

C# 提供了多种运算符,主要包括:

1. **算术运算符**
   - `+`(加)
   - `-`(减)
   - `*`(乘)
   - `/`(除)
   - `%`(取余)

2. **比较运算符**
   - `==`(等于)
   - `!=`(不等于)
   - `>`(大于)
   - `<`(小于)
   - `>=`(大于或等于)
   - `<=`(小于或等于)

3. **逻辑运算符**
   - `&&`(逻辑与)
   - `||`(逻辑或)
   - `!`(逻辑非)

4. **赋值运算符**
   - `=`(赋值)
   - `+=`(加并赋值)
   - `-=`(减并赋值)
   - `*=`(乘并赋值)
   - `/=`(除并赋值)
   - `%=`(取余并赋值)

5. **其他运算符**
   - `++`(自增)
   - `--`(自减)
   - `? :`(条件运算符)

### 分支语句

C# 支持多种分支语句:

1. **if 语句**
   ```csharp
   int a = 5;
   if (a > 0)
   {
       Console.WriteLine("a is positive.");
   }
   ```

2. **if-else 语句**
   ```csharp
   int a = 5;
   if (a > 0)
   {
       Console.WriteLine("a is positive.");
   }
   else
   {
       Console.WriteLine("a is not positive.");
   }
   ```

3. **switch 语句**
   ```csharp
   int day = 3;
   switch (day)
   {
       case 1:
           Console.WriteLine("Monday");
           break;
       case 2:
           Console.WriteLine("Tuesday");
           break;
       case 3:
           Console.WriteLine("Wednesday");
           break;
       default:
           Console.WriteLine("Another day");
           break;
   }
   ```

### 数组

C# 支持多种类型的数组,包括一维数组、多维数组和交错数组。

1. **一维数组**
   ```csharp
   int[] numbers = { 1, 2, 3, 4, 5 };
   for (int i = 0; i < numbers.Length; i++)
   {
       Console.WriteLine(numbers[i]);
   }
   ```

2. **多维数组**
   ```csharp
   int[,] matrix = {
       { 1, 2, 3 },
       { 4, 5, 6 },
       { 7, 8, 9 }
   };
   for (int i = 0; i < matrix.GetLength(0); i++)
   {
       for (int j = 0; j < matrix.GetLength(1); j++)
       {
           Console.Write(matrix[i, j] + " ");
       }
       Console.WriteLine();
   }
   ```

3. **交错数组(锯齿状数组)**
   ```csharp
   int[][] jaggedArray = new int[3][];
   jaggedArray[0] = new int[] { 1, 2 };
   jaggedArray[1] = new int[] { 3, 4, 5 };
   jaggedArray[2] = new int[] { 6, 7, 8, 9 };

   for (int i = 0; i < jaggedArray.Length; i++)
   {
       for (int j = 0; j < jaggedArray[i].Length; j++)
       {
           Console.Write(jaggedArray[i][j] + " ");
       }
       Console.WriteLine();
   }
   ```

这些示例涵盖了C#中常用的数据类型、运算符、分支语句和数组的基本用法。如果你有其他具体问题或需要更深入的讲解,欢迎随时提问。

编程中 C# 的特点

1. 简单易学:C# 语法简洁明了,易于理解和使用,适合初学者学习编程。
2. 面向对象:支持类、继承、多态、封装等面向对象的编程概念。
3. 类型安全:C# 提供了严格的类型检查机制,减少了运行时错误。
4. 丰富的类库:.NET 框架提供了丰富的类库,方便开发各种应用。
5. 跨平台:使用 .NET Core 或 .NET 5 及更高版本,C# 代码可以在 Windows、Linux 和 macOS 上运行。

 经典代码示例

下面是几个经典的 C# 代码示例,展示了 C# 的基本语法和功能。

示例1:Hello World

这是一个最简单的 C# 程序,它在控制台上输出 "Hello, World!"。```csharp

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}


```

#### 示例2:基本的面向对象编程

这个示例展示了如何定义类和对象,以及如何使用继承和多态。```csharp

using System;

namespace OOPExample
{
    // 定义一个基类
    class Animal
    {
        public string Name { get; set; }
        
        public Animal(string name)
        {
            Name = name;
        }

        public virtual void Speak()
        {
            Console.WriteLine($"{Name} makes a sound.");
        }
    }

    // 定义一个派生类
    class Dog : Animal
    {
        public Dog(string name) : base(name) { }

        public override void Speak()
        {
            Console.WriteLine($"{Name} barks.");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Animal myDog = new Dog("Buddy");
            myDog.Speak();  // 输出:Buddy barks.
        }
    }
}


```

#### 示例3:LINQ 查询

这个示例展示了如何使用 LINQ (Language Integrated Query) 来查询集合。```csharp

using System;
using System.Linq;
using System.Collections.Generic;

namespace LINQExample
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // 使用 LINQ 查询偶数
            var evenNumbers = from num in numbers
                              where num % 2 == 0
                              select num;

            Console.WriteLine("Even numbers:");
            foreach (var num in evenNumbers)
            {
                Console.WriteLine(num);
            }
        }
    }
}


```

这是一个关于c#核心知识点的思维导图帮助大家更好了解c#语言的框架

插入c#选择排序算法作为高阶的知识扩展点

/// <summary>
        /// 选择排序算法
        /// </summary>
        public static void SelectionSortAlgorithmMain()
        {
            int[] array = { 64, 25, 12, 22, 11, 99, 3, 100 };

            Console.WriteLine("原始数组: ");
            PrintArray(array);

            SelectionSortAlgorithm(array);

            Console.WriteLine("排序后的数组: ");
            PrintArray(array);
        }

        static void SelectionSortAlgorithm(int[] arr)
        {
            int n = arr.Length;

            for (int i = 0; i < n - 1; i++)
            {
                // 在未排序部分中找到最小元素的索引
                int minIndex = i;
                for (int j = i + 1; j < n; j++)
                {
                    if (arr[j] < arr[minIndex])
                    {
                        minIndex = j;
                    }
                }

                // 将最小元素与未排序部分的第一个元素交换位置
                int temp = arr[minIndex];
                arr[minIndex] = arr[i];
                arr[i] = temp;
            }
        }

        static void PrintArray(int[] arr)
        {
            int n = arr.Length;
            for (int i = 0; i < n; ++i)
            {
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine();
        }

这些示例展示了 C# 的基本语法、面向对象编程和 LINQ 查询。C# 是一种功能强大的语言,适用于各种应用开发场景。

如果有误,欢迎大家补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值