【C#入门超简单】基本的.NET框架概念

  • 【C#入门超简单】基本的.NET框架概念已关闭评论
  • 27 次浏览
  • A+
所属分类:.NET技术
摘要

.NET框架是一个由微软开发的软件开发平台,它提供了一个运行时环境(CLR – Common Language Runtime)和一套丰富的类库(FCL – Framework Class Library)。CLR负责管理代码的执行,而FCL则提供了大量预先编写好的代码,供开发者使用。


一、基本的.NET框架概念

.NET框架是一个由微软开发的软件开发平台,它提供了一个运行时环境(CLR - Common Language Runtime)和一套丰富的类库(FCL - Framework Class Library)。CLR负责管理代码的执行,而FCL则提供了大量预先编写好的代码,供开发者使用。

例子:

想象一下.NET框架是一个大型的超市,CLR是超市的收银系统,确保每件商品(代码)都能正确结算(执行),而FCL就是超市里的商品货架,上面摆满了各种商品(类和方法)供你选择。

使用.NET类库

.NET类库是一组预先构建好的代码集合,它们封装了常见的功能,使得开发者不必从头开始编写所有代码。

例子:

如果你需要进行数学运算,.NET类库中有一个名为System.Math的类,它包含了各种数学函数,比如求平方根:

using System;  class Program {     static void Main()     {         double result = Math.Sqrt(16); // 使用Math类求平方根         Console.WriteLine("The square root of 16 is: " + result);     } } 

二、字符串操作

在.NET中,字符串操作是非常常见的任务,涉及到对文本数据的各种处理,比如搜索、替换、分割等。字符串在.NET中是通过System.String类来表示的,这个类提供了丰富的方法来进行各种操作。

1. 创建和连接字符串

  • 创建字符串:直接使用双引号创建字符串。
  • 连接字符串:可以使用+操作符或者String.Concat方法来连接字符串。
string name = "张三";  // 创建字符串 string greeting = "你好, " + name + "!";  // 连接字符串 Console.WriteLine(greeting);  // 输出:你好, 张三! 

2. 字符串的基本操作

  • 长度:使用Length属性获取字符串的长度。
  • 访问字符:使用索引访问字符串中的单个字符。
string example = "Hello"; int length = example.Length;  // 获取长度,结果为5 char firstChar = example[0];  // 获取第一个字符,结果为'H' 

3. 查找和替换

  • 查找子字符串:使用IndexOf方法查找子字符串在主字符串中的位置。
  • 替换内容:使用Replace方法替换字符串中的内容。
string sentence = "我爱编程,编程使我快乐。"; int index = sentence.IndexOf("编程");  // 查找"编程"的位置,结果为2 string newSentence = sentence.Replace("编程", "画画");  // 将"编程"替换为"画画" Console.WriteLine(newSentence);  // 输出:我爱画画,画画使我快乐。 

4. 分割字符串

  • 分割:使用Split方法根据指定的分隔符将字符串分割成多个部分。
string fruits = "苹果,香蕉,橘子"; string[] fruitArray = fruits.Split(',');  // 使用逗号分割字符串 foreach (string fruit in fruitArray) {     Console.WriteLine(fruit);  // 依次输出:苹果 香蕉 橘子 } 

5. 字符串的修改

字符串在.NET中是不可变的,意味着一旦创建,其内容就不能改变。如果需要修改字符串,实际上是创建了一个新的字符串对象。

string original = "Hello"; string modified = original + " World";  // 创建了一个新的字符串"Hello World" Console.WriteLine(modified);  // 输出:Hello World 

6. 格式化字符串

  • 格式化:使用String.Format或插值字符串来格式化字符串。
int age = 30; string formatted = String.Format("他的年龄是{0}岁。", age);  // 使用String.Format格式化 string interpolated = $"他的年龄是{age}岁。";  // 使用字符串插值 Console.WriteLine(formatted);  // 输出:他的年龄是30岁。 Console.WriteLine(interpolated);  // 输出:他的年龄是30岁。 

以上就是.NET中进行字符串操作的一些基本方法和例子,字符串操作是非常重要的一个知识点,这里篇幅有限就不展开说了,下次专门开一篇讲字符串操作,先挖个坑,哈哈哈。

三、集合框架

在.NET中,集合框架是一组用于存储和管理数据的类和接口。这些集合类帮助我们组织数据,使数据的添加、删除、遍历和搜索等操作更加方便和高效。它包括列表(List)、字典(Dictionary)、队列(Queue)、栈(Stack)等。

List

List是一个动态数组,可以存储任何类型的元素,并允许添加、删除和访问元素。

例子:

using System.Collections.Generic;  List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; // 初始化List numbers.Add(6); // 添加元素 int lastNumber = numbers[numbers.Count - 1]; // 访问元素 numbers.RemoveAt(2); // 删除特定位置的元素 

Dictionary

Dictionary就像是一个电话簿,你可以用一个键(比如人名)来查找对应的值(比如电话号码)。

例子:

Dictionary<string, int> phoneBook = new Dictionary<string, int>(); phoneBook.Add("张三", 1234567890); // 添加键值对 int phoneNumber = phoneBook["张三"]; // 通过键获取值 Console.WriteLine("张三的电话号码是: " + phoneNumber); 

3. HashSet(集)

HashSet<T>是一种不允许重复元素的集合,它可以用来快速检查某个元素是否存在。

HashSet<string> uniqueNames = new HashSet<string>();  // 创建一个HashSet uniqueNames.Add("张三");  // 添加元素 uniqueNames.Add("张三");  // 再次添加相同的元素,不会有任何效果  Console.WriteLine(uniqueNames.Count);  // 输出元素的数量,结果为1 

4. Queue(队列)

Queue<T>是一种先进先出(FIFO)的集合。元素从队列的一端添加,并从另一端移除。

Queue<string> line = new Queue<string>();  // 创建一个队列 line.Enqueue("张三");  // 入队 line.Enqueue("李四");  Console.WriteLine(line.Dequeue());  // 出队并打印,输出"张三" Console.WriteLine(line.Dequeue());  // 再次出队并打印,输出"李四" 

5. Stack(栈)

Stack<T>是一种后进先出(LIFO)的集合。元素从栈顶添加,并从栈顶移除。

Stack<string> books = new Stack<string>();  // 创建一个栈 books.Push("书籍1");  // 入栈 books.Push("书籍2");  Console.WriteLine(books.Pop());  // 出栈并打印,输出"书籍2" Console.WriteLine(books.Pop());  // 再次出栈并打印,输出"书籍1" 

以上就是.NET中常见的几种集合类型的简介和使用示例。通过这些集合类,你可以更有效地管理和操作数据集。

四、文件和流操作

文件操作是程序与文件系统交互的一种方式,流(Stream)是.NET中用于读写数据的抽象概念。在.NET中,文件操作主要涉及到读取、写入、创建和删除文件等操作。这些操作通常通过System.IO命名空间中的类来实现,如FileFileInfoDirectoryDirectoryInfo等。

1. 写入文件

使用File.WriteAllText方法可以创建一个文件,并向其中写入文本。如果文件已存在,这个方法会覆盖原有内容。

// 写入文本到文件 string filePath = "example.txt"; string content = "Hello, this is a test file."; File.WriteAllText(filePath, content);  // 创建文件example.txt,并写入指定的文本内容 

2. 读取文件

使用File.ReadAllText方法可以读取文件的全部文本内容。

// 从文件读取文本 string readContent = File.ReadAllText(filePath);  // 读取example.txt文件的内容 Console.WriteLine(readContent);  // 输出文件内容 

3. 追加文本到文件

使用File.AppendAllText方法可以在文件的末尾追加文本,而不是覆盖原有内容。

// 追加文本到文件 string additionalContent = " Here is some more text."; File.AppendAllText(filePath, additionalContent);  // 在现有文件内容后追加更多文本 

4. 检查文件是否存在

使用File.Exists方法可以检查指定路径的文件是否存在。

// 检查文件是否存在 bool fileExists = File.Exists(filePath);  // 检查example.txt文件是否存在 Console.WriteLine(fileExists ? "文件存在。" : "文件不存在。"); 

5. 删除文件

使用File.Delete方法可以删除指定路径的文件。

// 删除文件 File.Delete(filePath);  // 删除example.txt文件 

6. 使用StreamReader和StreamWriter

对于更复杂的文件操作,如逐行读取或写入大量数据,可以使用StreamReaderStreamWriter

// 使用StreamWriter写入文件 using (StreamWriter writer = new StreamWriter("example.txt")) {     writer.WriteLine("第一行文本");     writer.WriteLine("第二行文本"); }  // 使用StreamReader读取文件 using (StreamReader reader = new StreamReader("example.txt")) {     string line;     while ((line = reader.ReadLine()) != null)  // 逐行读取直到文件末尾     {         Console.WriteLine(line);  // 输出读取的每一行     } } 

以上就是.NET中进行文件操作的一些基本方法和示例。通过这些方法,你可以轻松地在.NET应用程序中处理文件的读写任务。

流操作还包括二进制流(BinaryReader/BinaryWriter)、网络流(NetworkStream)等,用于不同类型的数据读写。

以上就是.NET框架的一些核心概念和操作。每个知识点都像是构建软件大厦的一块砖,理解并熟练使用它们,你就能构建出功能强大、结构清晰的应用程序。