
c#
文章平均质量分 86
此生不悔入海贼
喜欢技术的钻研,常年专注于虚拟仿真开发、AR、VR开发
展开
-
C# 集合系列 =>排序列表(SortedList)
1,定义命名空间:System.Collections程序集:System.Collections.NonGeneric.dll继承:Object—>SortedList实现:ICollection IDictionary IEnumerable ICloneable2,注解SortedList对象在内部维护两个用于存储列表元素的数组; 即,一个数组用于存储键,另一个数组用于关联值。 每个元素都是一个可作为对象进行访问的键/值对 Di...原创 2021-11-08 20:11:03 · 1183 阅读 · 0 评论 -
C# 集合系列 =>哈希表Hashtable
1. 哈希表(HashTable)简述在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.2. 什么情况下使用哈希表(1)某些数据会被高频率查询(2)数据量大(3)查询字.原创 2021-11-08 19:27:33 · 375 阅读 · 0 评论 -
C# 集合系列 =>ArrayList类:动态数组
简介:动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。创建 ArrayList 类的对象需要使用该类的构造方法:构造方法 作用 ArrayList() 创建 ArrayList 的实例,集合的容量是默认初始容量 ArrayList(ICollection c) 创建 Array原创 2021-11-03 18:58:11 · 273 阅读 · 0 评论 -
C# 集合系列 => Stack<T> 栈
简介:堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。栈的特点:1、后进先出(LIFO)的一种数据结构2、随着向栈中添加元素,栈空间会根据内容重新分配空间3、栈中允许存放null作为有效值,并且允许存放重复值Stack 类提供了 3 种构造方法,如下表所示。构造方法 作用 Stack() 使用初始容量创建 Stack 的对象 Stack.原创 2021-11-01 17:03:16 · 438 阅读 · 0 评论 -
C# 集合系列 :SortedList<TKey,TValue> 类
简述:命名空间:System.Collection.Generic程序集:System.Collections.dllSortedList 是 Hashtable 和 Array 的混合。当使用 Item 索引器属性按照元素的键访问元素时,其行为类似于 Hashtable。当使用 GetByIndex 或 SetByIndex 按照元素的索引访问元素时,其行为类似于 Array。SortedList 在内部维护两个数组以将数组存储到列表中;即,一个数组用于键,另一个数组用于相原创 2021-10-29 17:25:03 · 734 阅读 · 0 评论 -
C# 集合系列 Queue类 => 队列
概述:队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。Queue总结: 1、先进先出的一种数据结构 2、随着往队列中添加元素,队列存储空间动态调整大小 3、Queue也接受null作为有效值,可以存储重复值 4、在AI寻路算法中经常用到QueueQueue 类的方法和属性:集合中的 Queue 类模拟了队列操作,提供了队列中常用的属性和方法。Queue 类提供了原创 2021-10-27 20:26:11 · 702 阅读 · 0 评论 -
C# 集合系列 =>字典 Dictionary
使用字典的原因:通常情况下,我们可以通过int类型的索引号来从数组或者list集合中查询所需的数据。但是如果情况稍微复杂一点:索引号是非int型数据比如string或其他类型该如何操作呢。这个时候我们就可以使用字典了。定义:字典是一种让我们可以通过索引号查询到特定数据的数据结构类型。1、用来存储具有一一对应关系的数据的集合2、使用key-value(键值对)来存储数据3、字典中key是唯一的,value可以是变量,也可以是个对象4、字典是一个泛型集合(泛型类),实例化的原创 2021-10-27 19:58:06 · 3469 阅读 · 2 评论 -
C# 集合系列 List集合 => List<T>
简述:List泛型集合是C#编程中的经常使用的集合之一,相对数组它可以动态的添加元素而不是声明的时候就必须指定大小。相对于ArrayList集合和Hashtable集合的优势是其元素的数据类型可以确定。而不是默认的父类类型object。List泛型集合的声明与元素添加:List泛型集合的声明:List<数据类型> 变量名=new list<数据类型>();List<int> list = new List<int>();注意:1原创 2021-10-26 20:26:01 · 1937 阅读 · 2 评论 -
C# 集合系列
C#集合系列内容比较多,接下来会分几个阶段给大家细讲,让大家能清晰地认识到集合的好处简介:数组最适用于创建和使用固定数量的强类型化对象。集合提供更灵活的方式来使用对象组。 与数组不同,你使用的对象组随着应用程序更改的需要动态地放大和缩小。 对于某些集合,你可以为放入集合中的任何对象分配一个密钥,这样你便可以使用该密钥快速检索此对象。集合是一个类,因此必须在向该集合添加元素之前,声明类的实例。如果集合中只包含一种数据类型的元素,则可以使用System.Collections.Gener..原创 2021-10-25 20:55:14 · 465 阅读 · 0 评论 -
C# 静态类和静态成员
静态成员:非静态类可以包含静态方法、字段、属性或事件。 即使未创建类的任何实例,也可对类调用静态成员。 静态成员始终按类名(而不是实例名称)进行访问。 静态成员只有一个副本存在(与创建的类的实例数无关)。 静态方法和属性无法在其包含类型中访问非静态字段和事件,它们无法访问任何对象的实例变量,除非在方法参数中显式传递它。更典型的做法是声明具有一些静态成员的非静态类(而不是将整个类都声明为静态)。 静态字段的两个常见用途是保留已实例化的对象数的计数,或是存储必须在所有实例间共享的值。静态方法可以进行原创 2021-10-23 15:44:04 · 1416 阅读 · 0 评论 -
C# 泛型
为什么要有泛型:我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。你可能会想到用object,来解决这个问题。但是,缺陷的:1.会出现装箱、折箱操作,这将在托管堆上分配和回收大量的变量,若数据量大,则性能损失非常严重。2.在处理引用类型时,虽然没有装箱和折箱操作,但将用到数据类型的强制转换操作,增加处理器的负担。介绍泛型:C.原创 2021-10-22 15:58:49 · 9307 阅读 · 0 评论 -
C# 特性(Attribute)
什么是特性:特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。规定特性:特性的目的是告诉编译器把程序结构的某组元数据嵌入程序集,它可以放置在几乎所有的声明中(但特定的属原创 2021-10-21 10:23:21 · 2219 阅读 · 0 评论 -
C# 接口(Interface)
简介: 接口定义了所有类继承接口时应遵循的语法合同。 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。 接口使得实现接口的类或结构在形式上保持一致。 抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。 接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。...原创 2021-10-19 20:08:58 · 4796 阅读 · 0 评论 -
C# 抽象类(abstract)
C#抽象类:C#抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。abstract修饰符指示被修改内容的实现已丢失或不完整。 abstract 修饰符可用于类、方法、属性、索引和事件。 在类声明中使用abstract修饰符来指示某个类仅用作其他类的基类,而不用...原创 2021-10-19 19:23:09 · 11883 阅读 · 0 评论 -
C# 面向对象(封装、继承、多态)
面向对象的基本知识:C#程序分为面向过程和面向对象什么是对象:一切皆为对象:Object,生活中常说的“东西”就是程序里面所指的对象;生活中遇到的东西我们都在下意识的归类;归类意味着抽象模型;类:class,对某类众多对象的共同特点抽象出来的模型。他们的关系:类是好多对象的抽象,对象是类的实例化。面向对象是把构成问题事务分解成各个对象,建立对象 的目的不是为了完成一个步骤,而是为了描叙某个事物 在整个解决问题的步骤中的行为。 例如:两个套在一起的圆,求内圆的周长和内圆原创 2021-10-16 17:05:38 · 1009 阅读 · 0 评论 -
C# 构造函数与析构函数
前言:微软利用面向对象的概念在设计C#语言时充分考虑了这个问题并很好地予以解决:把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作。构造函数(构造方法):构造函数又叫构造方法,它是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化,也就是就是对类进行初始化。主要特点:1、构造函数的名字必须与类同名2、构造函数没有返回类型,它可以带参数,也可以不带原创 2021-10-14 19:57:54 · 2432 阅读 · 0 评论 -
C# get和set访问器:获取和设置字段(属性)的值
简介:属性经常与字段连用,并提供了 get 访问器和 set 访问器,分别用于获取或设置字段的值。get 访问器和 set 访问器的使用与方法非常类似,可以在操作字段时根据一些规则和条件来设置或获取字段的值。get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性就是只读的。同样,只有set,属性就是只写的,当然只写的属性我觉的意义不是很大。定义:public 数据类型 属性名{ get { 获取属性的...原创 2021-10-13 20:57:09 · 11078 阅读 · 0 评论 -
C# 结构体(struct)与类(Class)区别
总述:简单来说,struct是值类型,创建一个struct类型的实例被分配在栈上。class是引用类型,创建一个class类型实例被分配在托管堆上。但struct和class的区别远不止这么简单。概括来讲,struct和class的不同体现在:● 类是引用类型,struct是值类型● 在托管堆上创建类的实例,在栈上创建struct实例● 类实例的赋值,赋的是引用地址,struct实例的赋值,赋的是值● 类作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值● 类没原创 2021-10-12 20:25:35 · 4563 阅读 · 0 评论 -
C# 类(Class)
总述:当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量称为类的成员。类的定义:类的定义是以关键字class开始,后跟类的名称。类的主体,包含在一对花括号内。下面是类定义的一般形式:<access specifier> class class_name{ // member variables <acc..原创 2021-10-12 19:57:19 · 305 阅读 · 0 评论 -
C# 字符串
字符串及特殊引用:string 字符串是非常常用的数据类型,它是引用类型,但又非常特殊。String字符串所定义的值可能很多很多,引用类型会在堆空间建立一个储存空间用来存放String字符串的值,非常占用空间。所以如果定义了多个值一样的字符串,内存里的值只有一份,他们所应用的就只有一个值字符串的更改:字符串是不能更改的,所谓更改是创建了一个新的字符串string a="abc";a="abcd";它会生成一个新的字符串,原来的值就会被C#的垃圾回收机制自动销毁垃圾回收机制如果原创 2021-10-11 20:56:44 · 656 阅读 · 0 评论 -
C#基础:结构体
学习目标:在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct关键字用于创建结构体。结构体是用来代表一个记录。假设您想跟踪图书馆中书的动态。您可能想跟踪每本书的以下属性:Title Author Subject Book ID定义结构体:结构体是一种自定义的数据类型。 结构体相当于一个复合容器,可以存在多种类型的数据。为了定义一个结构体,您必须使用 struct 语句。struct 语句为程序定义了一个带有多个成员的新的数据类.原创 2021-09-24 11:48:50 · 362 阅读 · 1 评论 -
C#基础:枚举
枚举:枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。如果公司让你写一个电话分机的程序,当客户打电话到 前台后实现自动转接的功能,用户拨打分机号900转到人力部, 拨打分机号800转到市场部……考虑一下,你会怎么去实现呢? 你可能会想到使用switch...case语句去实现这个功能,如下 代码:int phoneNum = int.Parse (Console.ReadLine ()); switch (phoneNum) { //像这种900的写..原创 2021-09-24 11:32:59 · 325 阅读 · 0 评论 -
C# 数组(Array)
定义以及细节:数组是一个存储相同类型元素的固定大小的顺序集合。int [ ] intArray; 其中,int用于指定被存储在数组中的元素的类型。[ ]指定数组的秩(维度)。秩指定数组的大小。intArray指定数组的名称。细节:一维数组 只有一种元素固定的集合 多维数组 多维数组最简单的形式是二维数组。 交错数组 C# 支持交错数组,即数组的数组。 传递数组给函数 您可以通过指定不带索引的数组名称来给函数传递一个指向...原创 2021-09-16 21:28:49 · 9229 阅读 · 0 评论 -
C#中常见的几种算法
using System.Collections;using System.Collections.Generic;using UnityEngine;//编程中常用的排序算法:冒泡排序,选择排序,插入排序,快速排序等public class SortScript : MonoBehaviour {void Start () { // InsertionSort(); /...原创 2019-05-14 11:44:08 · 5081 阅读 · 0 评论 -
C# 封装
学习目标:封装被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。C# 封装根据具体的需要,设置使用者的访问权限,并通过访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:public:所有对象都可以访问; private:对象本身在对象内部可以访问; protect...原创 2021-09-16 20:23:28 · 138 阅读 · 0 评论 -
C#结构(循环)
分类:C# 提供了以下几种循环类型。while循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for/foreach循环 多次执行一个语句序列,简化管理循环变量的代码。 do...while循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 循环控制语句:循环控制语句更改执行的正常序列。当执原创 2021-09-15 21:49:28 · 823 阅读 · 1 评论 -
C#结构(判断)
学习目标:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。顺序结构:顺序执行语句。 分支结构:通过进行一个判断在两个可选的语句序列之间选择执行(分支)。循环结构:在满足某个条件的时候反复执行一个语句序列(循环)。if语句(判断):用if语句可以构成分支结构,它根据给的条件进行判定,以决定执行某个分支程序段。 C#语言的if语句有三种基本形式。if语句第一种形式:if (条件表达式){...原创 2021-09-14 21:52:20 · 559 阅读 · 1 评论 -
C#变量、常量、运算符
定义:变量:1,变量代表一个存储区域。 2,存储区域内存储的内容就是变量的值,变量的值可以在程序运行期间改变。常量:程序运行期间值不能被改变的量。运算符:分为赋值运算符,算术运算符以及复合运算符。变量:1,变量的定义:由三部分组成:类型修饰符 变量名 = 初始值; 例如:int age = 23; 注意:在使用变量之前必须对变量进行定义。2,变量的命名规则:1,只能由数字、字母、下划线或@组成,并且数字不能开头,@ ...原创 2021-09-11 13:58:54 · 835 阅读 · 0 评论 -
C# 数据类型转换
学习目标:学会C#数据类型的转换C# 类型转换方法:隐式类型转换- 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。 显式类型转换- 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。 下面的实例把不同值的类型转换为字符串类型:namespace TypeConversionApplication{ class StringConversion {..原创 2021-09-03 17:56:12 · 1006 阅读 · 0 评论 -
C# 数据类型
数据类型分类:值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types)值类型(Value types):值类型变量可以直接分配给一个值。它们是从类System.ValueType中派生的。值类型直接包含数据。比如int、char、float,它们分别存储数字、字符、浮点数。当您声明一个int类型时,系统分配内存来存储值。引用类型(Reference types):引用类型不包含存储在变量中的实际数据,但...原创 2021-09-02 21:00:48 · 269 阅读 · 0 评论 -
C# 基本语法
实例:using System;namespace RectangleApplication{ class Rectangle { // 成员变量 double length;//声明一个double类型的变量length double width;//声明一个double类型的变量width public void Acceptdetails() //一个用来赋值的方法 { le原创 2021-09-02 20:35:12 · 879 阅读 · 0 评论 -
C#所需环境构建
目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):impo原创 2021-09-02 17:44:41 · 3218 阅读 · 0 评论 -
c#简单介绍
C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。文章目录前言一、C#是什么?二、C# 强大的编程功能 总结前言C# 编程是基于 C 和 C++ 编程语言的,因此如果您对 C 和 C++ 编程有基本的了解,将有助于您学习 C# 编程语言。一、C#是什么?C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。C# 是由 Anders Hejls原创 2021-09-01 14:00:53 · 310 阅读 · 0 评论