【C#入门超简单】基本的.NET框架概念
一、基本的.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
命名空间中的类来实现,如File
、FileInfo
、Directory
、DirectoryInfo
等。
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
对于更复杂的文件操作,如逐行读取或写入大量数据,可以使用StreamReader
和StreamWriter
。
// 使用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框架的一些核心概念和操作。每个知识点都像是构建软件大厦的一块砖,理解并熟练使用它们,你就能构建出功能强大、结构清晰的应用程序。