C#
文章平均质量分 93
AItrust
AI_Computer Vision
展开
-
CLR 尝试 C# 调用 C++ 的方法和类 Visual Studio 2019 (2022年3月详细记录)
C# 调用 C++ 测试0. 准备工作测试平台:Visual Studio 2019操作系统:Windows 10 专业版CLR: Common Language RuntimeCLI: Common Language Infrastructure开启 Visual Studio 新建解决方案 CsInvokeCppTest同时产生一个 C# 控制台应用程序: CsInvokeCppTest,代码文件为 Program.cs目标框架:.NET 5.0(注意:这里的 C# 项目的框原创 2022-03-23 11:43:19 · 3180 阅读 · 0 评论 -
C# 中的反射及其优缺点(学习心得 29)
反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装 程序集、模块和类型 的对象。可以使用反射,动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。一、反射的优缺点优点:1、反射提高了程序的灵活性和扩展性。2、降低耦合性,提高自适应能力。3、允许程序创建和控制任何类的对象,无需提前硬编码目标类。缺点:1、性能问题:使用反射基本上是一种解释操作,用于原创 2020-07-03 17:14:51 · 1410 阅读 · 0 评论 -
C# 的特性 Attribute(学习心得 28)
特性(Attribute):用于,在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的 行为信息 的 声明性标签。您可以通过使用 特性 向程序添加 声明性信息 。一个 声明性标签 是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性(Attribute)用于添加 元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。文章目录一、规定特性(Attribute)二、预定义特性(Attribute)2.1 Attribut原创 2020-07-01 15:43:53 · 216 阅读 · 0 评论 -
C# 的文件读写方式汇总(学习心得 27)
当打开文件进行读写时,它变成一个 流。从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流。输入流用于从文件读取数据(读操作)输出流用于向文件写入数据(写操作)文章目录一、C# I/O 类二、FileStream 类三、C# 高级文件操作3.1 文本文件的读写3.1.1 StreamReader 类3.1.2 StreamWriter 类3.2 C# 二进制文件的读写3.2.1 BinaryReader 类3.2.2 BinaryWriter 类3.3 Win原创 2020-06-30 19:10:17 · 1273 阅读 · 0 评论 -
C# 异常处理(学习心得 26)
C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。语法:try{原创 2020-06-28 20:47:51 · 465 阅读 · 0 评论 -
C# 正则表达式详解(学习心得 25)
正则表达式 是一种匹配输入文本的模式。.Net 框架提供了允许这种匹配的正则表达式引擎。使用以下字符,运算符,结构,来定义正则表达式:转义字符字符类定位点分组构造限定符反向引用构造备用构造替换杂项构造文章目录一、转义字符二、字符类三、定位点四、分组构造4.1 (?= subexpression) 详解4.2 (?! subexpression) 详解4.3 (?<=subexpression) 详解4.4 (?<!subexpression) 详解4.5 (?>原创 2020-06-28 20:45:07 · 1468 阅读 · 0 评论 -
C# 预处理器指令(学习心得 24)
预处理器指令:指导编译器在实际编译开始之前对信息进行预处理。所有的预处理器指令都是以 # 开始。在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以 分号(;)结束。一个预处理器指令必须是该行上的唯一指令。文章目录一、C# 预处理器指令列表1.1 #define 预处理器1.2 条件指令二、预处理器指令的用途理解一、C# 预处理器指令列表C# 中可用的预处理器指令:预处理器指令描述#define它用于定义一系列成为符号的字符。#un原创 2020-06-28 20:21:35 · 311 阅读 · 0 评论 -
C# 命名空间 Namespace (学习心得 23)
命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。文章目录一、定义命名空间二、using 关键字三、嵌套命名空间一、定义命名空间关键字 namespace 开始,后跟命名空间的名称。声明方法:namespace namespace_name{ // 代码声明}跨命名空间调用方式:namespace_name.item_name;例:using System;namespace first_space{ class namespace_cl {原创 2020-06-28 20:19:09 · 352 阅读 · 0 评论 -
C# 接口 Interface(学习心得 22)
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。接口使得实现接口的类或结构在形式上保持一致。抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。文章目录一、定义接口: MyInterface.cs二、接口实现:InterfaceImplementer原创 2020-06-28 20:14:50 · 449 阅读 · 0 评论 -
C# 运算符的重载(学习心得 21)
可以重定义或重载 C# 中内置的运算符。也可以使用用户自定义类型的运算符。通过关键字 operator 后跟运算符的符号来定义的。文章目录一、运算法重载的实现二、可重载和不可重载运算符一、运算法重载的实现例:重载 + 运算符,把我们需要的对象属性相加using System;namespace OperatorOvlApplication{ class Box { private double length; // 长度 private dou原创 2020-06-27 17:11:31 · 557 阅读 · 0 评论 -
C# 的静态多态性和动态多态性(学习心得 20)
同一个行为,具有多个不同表现形式或形态的能力。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态性可以是静态的或动态的:静态多态性中,函数的响应是在 编译 时发生的。动态多态性中,函数的响应是在 运行 时发生的。在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。同一个事件发生在不同的对象上会产生不同的结果。文章目录一、静态多态性1.1 函数重载二、动态多态性2.1 抽象类2.2 虚方法一、静态多态性在编译时,函数 和 对原创 2020-06-27 17:08:28 · 993 阅读 · 0 评论 -
C# 的继承(学习心得 19)
继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易,利于重用代码和节省开发时间。已有的类被称为的 基类,这个新的类被称为 派生类。继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物 属于(IS-A) 动物,狗 属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。一、基类和派生类一个类可以派生自 多个 类或接口。语法:<访问修饰符符> class <基类>{ ...}class <派生类> : <基类>原创 2020-06-27 17:03:35 · 489 阅读 · 1 评论 -
C# 的类定义,构造函数和析构函数(学习心得 18)
类,相当于一个数据类型的蓝图。一、类的定义关键字 class 开始,形式如下:<access specifier> class class_name{ // member variables <access specifier> <data type> variable1; <access specifier> <data type> variable2; ... <access specif原创 2020-06-25 09:47:42 · 1293 阅读 · 0 评论 -
C# 枚举 enum(学习心得 17)
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。枚举包含自己的值,且不能继承或传递继承。声明:enum <enum_name>{ enumeration list };参数:enum_name 指定枚举的类型名称。enumeration list 是一个用逗号分隔的标识符列表。枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0。例:using System;pu原创 2020-06-25 09:38:52 · 257 阅读 · 0 评论 -
C# 结构体(学习心得 16)
结构体,是 值类型 数据结构。使单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。结构体用来代表一个记录。一、定义结构体声明方式:struct Books{ public string title; public string author; public string subject; public int book_id;}; 例:using System;using System.Text; struct Book原创 2020-06-25 09:37:13 · 384 阅读 · 0 评论 -
C# 字符串的定义及相关方法汇总(学习心得 15)
使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。一、创建 String 对象创建方法:给 String 变量赋值一个字符串通过 String 类的构造函数通过字符串的串联运算符(+)通过检索属性,或调用一个返回字符串的方法通过格式化方法,转换一个值或对象,为字符串表示形式例:using System;namespace StringApplication{ class Program {原创 2020-06-24 20:41:03 · 2663 阅读 · 0 评论 -
C# 的数组定义,访问,及相关方法汇总(学习心得 14)
一个存储相同类型元素的固定大小的顺序集合。一、声明数组语法:datatype[] arrayName;参数:datatype:元素的数据类型[]:表示数组(这里不能填写数组大小!)arrayName:数组名称例:double[] balance;二、初始化数组数组是一个引用类型。需要使用 new 关键词来创建数组实例,以达到初始化。例:double[] balance = new double[10];三、数组赋值创建一个数组时,C# 编译器会根据数组类型隐式初始化原创 2020-06-23 19:06:25 · 604 阅读 · 0 评论 -
C# 的可空类型(Nullable),单问号,双问号(学习心得 13)
可空类型(Nullable),表示其基础值类型正常范围内的值,再加上一个 null 值。例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。原创 2020-06-22 14:58:22 · 557 阅读 · 0 评论 -
C# 方法的定义,调用,和参数传递(学习心得 12)
用来执行一个任务的语句块。每个 C# 程序至少有一个 Main 方法。使用方法需要:定义方法。调用方法。文章目录一、定义方法二、调用方法三、递归方法调用四、参数传递4.1 按值传递参数4.2 按引用传递参数4.3 按输出传递参数一、定义方法语法:<Access Specifier> <Return Type> <Method Name>(Parameter List){ Method Body}参数:Access Specifier:原创 2020-06-18 19:13:00 · 1200 阅读 · 1 评论 -
C# 的封装方式:public,private,protected,internal,protected internal(学习心得 11)
把一个,或者多个项目,封闭在一个物理,或者逻辑的包中。C# 封装,可设置访问权限,通过 访问修饰符 来实现。访问修饰符,定义一个类成员的范围和可见性。C# 支持的访问修饰符:public:所有对象都可以访问。private:对象本身在内部进行访问。protected:该类,及其子类可以访问。internal:同一程序集的对象可以访问。protected internal:当前程序集,或派生自包含类的类型。一、public一个类的成员变量和成员函数,可被外部的类访问。using S原创 2020-06-16 19:23:16 · 1029 阅读 · 0 评论 -
C# 循环语句:while,for,foreach,do while,break,continue,嵌套循环,无限循环(学习心得 10)
满足一定条件下,多次执行同一块代码。一、循环类型1.1 while 循环语法:while(condition){ statement(s);}condition 可以是任意的表达式,当为任意非零值时都为真。例:using System;namespace Loops{ class Program { static void Main(string[] args) { /* 局部变量定义 */原创 2020-06-15 19:36:24 · 1753 阅读 · 0 评论 -
C# 的判断语句 if else循环,switch 循环,嵌套判断语句(学习心得 9)
判断条件是否成立,成立则执行 A,不成立则执行 B(可选)。一、判断语句1.1 if 语句语法:if(boolean_expression){ /* 如果布尔表达式为真将执行的语句 */}例:using System;namespace DecisionMaking{ class Program { static void Main(string[] args) { /* 局部变量定义 */原创 2020-06-14 15:02:49 · 951 阅读 · 0 评论 -
C# 的算数运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,其他运算符(学习心得 8)
内置数学/逻辑运算符分类:算数运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符文章目录一、算数运算符二、关系运算符三、逻辑运算符四、位运算符五、赋值运算符六、其他运算符七、运算符优先级一、算数运算符C# 中支持的算数运算符列表:运算符描述实例(A=1,B=2)+把两个操作数相加A + B 将得到 3-从第一个操作数中减去第二个操作数A - B 将得到 -1*把两个操作数相乘A * B 将得到 2/分子除以分母B / A 将原创 2020-06-13 18:01:51 · 633 阅读 · 0 评论 -
C# 的常量类别汇总,及常量的定义方式(学习心得 7)
常量是固定值。可为任何基本数据类型:整数,浮点数,字符串等。一、整数常量前缀:十进制:没有前缀八进制:前缀为 0十六进制:前缀为 0x 或 0X后缀:unsigned:后缀 U 或 u(表示无符号)long:后缀 L 或 l(表示 64 位有符号整数类型)多个后缀可任意顺序组合例:212 // 合法,整型215u // 合法,无符号整型0xFeeL // 合法,十六进制整形(0~F 代表 0~15)078 // 非原创 2020-06-12 19:44:59 · 1296 阅读 · 0 评论 -
C# 变量的定义,初始化,赋值(学习心得 6)
变量:即存储区的名字,以便程序进行操作。每个变量有类型:值类型,引用类型,指针类型等。类型决定内存大小和布局。一、变量定义变量定义语法:<data_type> <variable_list>;例:int i, j, k;char c, ch;float f, salary;double d;二、变量初始化语法:variable_name = value;也可以在定义变量的时候,同时初始化:<data_type> <variable原创 2020-06-11 20:38:20 · 3543 阅读 · 0 评论 -
C# 的类型转换(显式/隐式)及内置类型转换方法汇总(学习心得 5)
把 数据 从一种 类型 转化为 另一种 类型。有 2 种形式:隐式类型转换:默认的安全方式,不会导致数据丢失。显式类型转换:需要强制类型转换运算符,会造成数据丢失。显式类型转换案例:using System;namespace TypeConversionApplication{ class ExplicitConversion { static void Main(string[] args) { double d原创 2020-06-10 11:36:25 · 604 阅读 · 0 评论 -
C# 的数据类型:值类型 Value types,引用类型 Reference types,指针类型 Pointer types(学习心得 4)
变量 分为 3 种类型:值类型(Value types)引用类型(Reference types)指针类型(Pointer types)一、值类型(Value types)这个类型的变量,可以赋值。该类型变量从类 System.ValueType 得到。可用的值类型:类型描述范围默认值bool布尔值True 或 FalseFalsebyte8 位无符号整数0 到 2550char16 位 Unicode 字符U +0000 到 U +f原创 2020-06-09 18:41:12 · 1258 阅读 · 0 评论 -
C# 的基本语法,标识符,关键字(学习心得 3)
C# 是面对对象的编程。程序由各种交互对象组成。同种类对象,通常在相同的 class 中。例如我们实现一个矩形对象 Rectangle 的类,那这个类下面会有 length 和 width 属性,根据属性计算面积和显示细节。实例:using System;// 任何 C# 程序中第一条都是这个语句namespace RectangleApplication //新建一个命名空间 RectangleApplication{ class Rectangle //新原创 2020-06-01 21:19:46 · 403 阅读 · 0 评论 -
C# 基础程序结构和入门实例(学习心得 2)
C# Hello World 实例C# 最小的程序结构需要包含以下部分:命名空间声明一个 class一个 Class 方法该 Class 方法的属性一个 Main 方法语句 Statements 和 表达式 Expressions注释实例:using System;// 用于在程序中包含 System 命名空间。namespace my_first_program // 指定命名空间的名字,可包含多个类{ class Program // 指定原创 2020-05-31 17:43:35 · 432 阅读 · 0 评论 -
什么是 C# ,什么是 .Net 框架(.Net Framework)及其开发环境(学习心得 1)
C# 是 .Net 框架的一部分用于编写 .Net 应用程序文章目录.Net 框架(.Net Framework)C# 的集成开发环境(Integrated Development Environment - IDE).Net 框架(.Net Framework)用于编写应用程序。比如:Windows 应用程序,Web 应用程序等。这个框架下面支持多种语言,同时编写的应用程序也支持多平台,多种语言之间还能彼此交互。.Net 框架拥有一个巨大的代码库,提供给客户端语言比如 C# 使用C# 的集原创 2020-05-31 17:39:32 · 1117 阅读 · 0 评论