随笔分类 - .NET / C#语法
摘要:一、为什么需要补码?——计算机中的负数困境 1.1 原码表示法的缺陷(符号位与数值分离引发的运算问题) 在计算机世界中,所有数据都以二进制形式存储。对于整数来说,最直观的表示方法是"原码":用最高位表示符号(0为正,1为负),其余位表示绝对值。例如,在8位系统中: +5 表示为:0000 0101
阅读全文
摘要:在编程中,尤其是面向对象编程(OOP)中,术语如 公共成员、私有字段、PascalCase 和 camelCase 是非常常见的。它们分别描述了代码中的不同概念和命名约定。以下是详细的解释: 1. 公共成员(Public Members) 定义:公共成员是指类或结构体中可以通过类的外部访问的成员(包
阅读全文
摘要:在C#中,扩展方法允许你在不修改原始类的前提下向现有类添加新功能。这是一种方便的方式来扩展类型的功能,特别是在你无法修改类型源代码的情况下。 在C#中,如果一个静态方法的第一个参数前面加上了this关键字,那么这个方法就被定义为扩展方法。 定义扩展方法 扩展方法必须满足以下条件: 必须是静态类的一部
阅读全文
摘要:IEnumerable<TSource> 接口详解 IEnumerable<TSource> IEnumerable<TSource> 是 C# 中的一个泛型接口,它定义了如何遍历一组对象。这个接口是.NET Framework 中 LINQ (Language Integrated Query)
阅读全文
摘要:1.First() First() 是 LINQ 中的一个方法,用于从序列中获取第一个元素,这个元素可以满足一个指定的条件或者返回序列的第一个元素(如果不提供参数的话)。 方法签名 在C#中,`First()` 方法在 `System.Linq.Enumerable` 类中有几个重载版本。下面是其中
阅读全文
摘要:定义 非捕获组,用 (?: ... ) 表示。这意味着它将匹配括号内的内容,但是不会将匹配的内容存储到内存中供后续引用。 这对于那些我们想要作为一个整体处理,但是又不需要单独捕获其内容的情况非常有用。 举例 假设我们有一个字符串 abc123def,并且我们想要匹配其中的数字,同时忽略其他部分。如果
阅读全文
摘要:默认构造函数初始化类的实例 首先摆出这个概念,其实就是最常见的: MyClass instance = new MyClass(); // 使用默认构造函数 可空类型与不可空类型 然后需要明确一下这两个概念。 在C#中,可空类型(nullable types)是指那些可以被赋值为 null 的类型。
阅读全文
摘要:1. 成员变量(字段) 定义:成员变量(通常简称为字段)是类中直接声明的数据成员,用于存储对象的状态。 访问修饰符:字段可以用访问修饰符(如public、private、protected等)来控制其访问级别,但通常将字段声明为private,以遵循封装的原则。 语法:字段的声明通常是直接的,没有任
阅读全文
摘要:在C#中,Nullable<T>类型用于值类型(例如int, double, bool等),使它们能够接受null作为值,但不能直接用于引用类型(如类)。因为引用类型默认就可以接受null值。 什么是 `Nullable<T>` 类型? `Nullable<T>` 是 C# 中的一种特殊的泛型结构,
阅读全文
摘要:在C#中,接口(Interface)是一个抽象类型,用于指定一组方法和属性,而不提供它们的具体实现。接口定义了一种契约,任何实现这个接口的类都必须遵循这个契约。 接口的定义 在C#中,接口使用interface关键字定义。例如: public interface IFlyable { void Fl
阅读全文
摘要:在C#中,数据类型分为两大类:值类型(Value Types)和引用类型(Reference Types)。了解它们的区别和如何操作它们是理解C#内存管理的重要部分。 值类型和引用类型的区别 值类型(Value Types): 值类型的变量直接存储它们的数据。 常见的值类型包括所有的基本数据类型(如
阅读全文
摘要:Task Task 类表示一个异步操作。这个操作可以通过 Task.Run 方法、TaskFactory.StartNew 方法,或直接通过 new Task 和 Task.Start 来启动。 拿Task.Run举例 Task task = Task.Run(() => { // 执行一些长时间运
阅读全文
摘要:本来写的是这样: ProcessStartInfo psi = new ProcessStartInfo { FileName = "cmd.exe", WorkingDirectory = FrmNewProject.GetFolderPath() + "\\SolverForEXE", Redi
阅读全文
摘要:在 C# 中,ProcessStartInfo 类是 System.Diagnostics 命名空间中的一部分,它用于控制 Process 类启动新进程时的各种设置。所以在定义了一个ProcessStartInfo之后还得定义一个Process 并将前者的设置绑定给后者。 示例: ProcessSt
阅读全文