标签: C#

35 篇文章

Study
C# C#基础ListDictionaryStruct&Class Unity
Dictionary
Hash哈希冲突的方法中通常有:开放定址法、再哈希法、链地址法、建立一个公共溢出区等。Dictionary使用的解决冲突方法是拉链法 拉链法的原理: Dictionary 是以数组为底层数据结构的类。当我们实例化 new Dictionary() 后,内部的数组是0个数组的状态。与 List 组件一样,Dictionary 也是需要扩容的,会随着元…
第 1 章 CLR的执行模型
1.1 将源代码编译成托管模块 公共语言运行时(Common Language Runtime,CLR)是一个可由多种编程语言使用的“运行时”。CLR的核心功能(比如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用。 可用支持CLR的任何语言创建源代码文件,然后用对应的编译器检查语法和分析源代码。无论选择哪个编译器,结…
第 2 章 生成、打包、部署和管理应用程序及类型
本章重点解释如何生成仅供自己的应用程序使用的程序集。 2.2 将类型生成到模块中 本节讨论如何将包含多个类型的源代码文件转变为可以部署的文件。先看下面这个简单的应用程序。 public sealed class Program { public static void Main() { System.Console.WriteLine("Hi");…
第 3 章 共享程序集和强命名程序集【晦涩,待重读】
第 2 章讲述了生成、打包和部署程序集的步骤。我将重点放在所谓的私有部署(private deployment)上。进行私有部署,程序集放在应用程序的基目录(或子目录),由这个应用程序独享。以私有方式部署程序集,可以对程序集的命名、版本和行为进行最全面的控制。 本章重点是如何创建可由多个应用程序共享的程序集。 Microsoft .NET Fram…
第 4 章 类型基础
4.1 所有类型都从 System.Object 派生 “运行时”要求每个类型最终都从 System.Object 类型派生。也就是说,以下两个类型定义完全一致: // 隐式派生自 Object class Emplpyee { … } // 显示派生自 Object class Emplpyee : System.Object { … } 由于所…
第 5 章 基元类型、引用类型和值类型
5.1 编程语言的基元类型 某些数据类型如此常用,以至于许多编译器允许代码以简化语法来操纵它们。例如,可用以下语法分配一个整数: System.Int32 a = new System.Int32(); 但你肯定不愿意用这种语法声明并初始化整数,它实在是太繁琐了。幸好,包括 C# 在内的许多编译器都允许换用如下所示的语法: int a = 0; 这…
第 6 章 类型和成员基础
6.1 类型的各种成员 类型中可定义 0 个或多个以下种类的成员。 ●常量 常量是指出数据值恒定不变的符号。这种符号使代码更易阅读和维护。常量总与类型关联,不于类型的实例关联。常量逻辑上总是静态成员。相关内容在第 7 章“常量和字段”讨论。●字段 字段表示只读或可读的数据值。字段可以是静态的;这种字段被认为是类型状态的一部分。字段也可以是实例(非静…
第 7 章 常量和字段
7.1 常量 常量是值从不变化的符号。定义常量符号时,它的值必须能在编译时确定。确定后,编译器将常量值保存到程序集元数据中。这意味着只能定义编译器识别的基元类型的常量。在 C# 中,以下类型是基元类型,可用于定义常量:Boolean,Char,Byte,SByte,Int16,UInt16,Int32,Uint32,Int64,UInt64,Sin…
第 13 章 接口
对于多继承(multiple inheritance)的概念,许多程序员并不陌生,它是指一个类从两个或多个基类派生的能力。例如,假定 TransmitData类的作用是发送数据,ReceiveData类的作用是接收数据。现在要创建SocketPort类,作用是发送和接收数据。在这种情况下,你会希望SocketPort从TransmitData和Re…
CLR via C# 备注
简写 CLR:Common Language Runtime。公共语言运行时DEP:Data Execution Prevention。Windows的数据执行保护ASLR:Address Space Layout Randomization。地址空间布局随机化COFF:Common Object File Format。标准Windows PE文…
C#基础
重载和重写的区别 封装、继承、多态所处位置不同,重载在同类中,重写在父子类中 定义方式不同,重载方法名相同参数列表不同,重写方法名和参数列表都相同 调用方式不同,重载使用相同对象以不同参数调用,重写用不同对象以相同参数调用 多态时机不同,重载时编译时多态,重写是运行时多态 面向对象的三大特点 封装 优点 将变化隔离 便于使用 提高复用性 提高安全性…
Socket和TcpClient/TcpListener
抽象层级不同 Socket:Socket是较低级别的网络编程API,提供了对底层TCP/IP协议栈的直接访问。通过Socket,需要手动管理连接、数据传输、发送和接收缓冲区等细节。意味着拥有更多控制权,但也需要更多代码来处理这些细节 TcpClient/TcpListener:这两个类是较高级的封装,封装了许多底层细节。TcpClient提供了连接…