
c#知识集锦
文章平均质量分 58
总结C#开发中的技巧
哒哒咦哒哒··
我很懒。。。。。。。。。。。。。。
展开
-
C# 中 == 和 Equals 的区别
=和Equals在C#中都是用于比较对象是否相等的工具,但它们之间存在明显的区别。==主要用于值类型和引用类型的地址比较,而Equals则更侧重于内容比较,特别是在重写后。在选择使用哪一个时,应根据具体的场景和需求来决定。对于值类型,通常使用==;对于引用类型,如果需要内容比较,则应重写Equals方法。原创 2024-04-01 17:59:16 · 1071 阅读 · 0 评论 -
C# 排序的多种实现方式(经典)
大多数时候,我们需要将list集合里面的数据进行排序,(即每个值都和它后面的数值比较,每次拿出最小值)先升序排列,然后对数组反转。原创 2024-04-01 17:57:41 · 2077 阅读 · 1 评论 -
Visual Studio 常用快捷键大全
对于开发者而言,熟悉快捷键的使用,能够起到事半功倍的作用,提高工作效率。以下是我整理的一份Visual Studio常用快捷键清单,希望能够帮助到你。原创 2024-03-25 10:39:39 · 1398 阅读 · 0 评论 -
十、C#基数排序算法
基数排序是一种稳定的排序算法,它的时间复杂度为O(d*(n+r)),其中d是位数,n是元素个数,r是基数(桶的个数)。相比其他比较性排序算法,基数排序的优势在于减少了元素之间的比较次数,并且可以处理负数。但是,基数排序的缺点是需要额外的空间来存储临时数组。C#十大排序总结-优快云博客。原创 2024-03-21 09:37:38 · 744 阅读 · 0 评论 -
九、C#桶排序算法
桶排序是一种线性时间复杂度的排序算法,适用于待排序数据分布均匀的情况。它通过将数据分到有限数量的桶中,再对每个桶单独进行排序,最后将桶中的数据按顺序组合起来,得到排序结果。桶排序的时间复杂度为O(n+k),其中n为待排序数据的数量,k为桶的数量。但当数据分布不均匀时,可能会导致某些桶的数据较多,需要进行更多的排序操作,使得效率下降。原创 2024-03-21 09:31:42 · 413 阅读 · 0 评论 -
八、C#计数排序算法
计数排序的时间复杂度为O(n+k),其中n为待排序数组的长度,k为最大值和最小值之差。计数排序的优势在于对范围较小的整数排序时,速度较快且稳定,但受限于需要统计每个元素的出现次数,不适用于范围过大或包含负数的情况。C#十大排序总结-优快云博客。原创 2024-03-20 17:18:51 · 706 阅读 · 0 评论 -
七、C#堆排序算法
堆排序是一种高效的排序算法,通过构建最大堆和反复调整堆的操作,实现对数组的排序。其时间复杂度为O(nlogn),并且具有较好的稳定性和空间效率。但是由于其涉及大量的元素交换操作,所以在实际应用中,可能不如快速排序等算法效率高。C#十大排序总结-优快云博客。原创 2024-03-20 15:54:00 · 458 阅读 · 0 评论 -
五、C#归并排序算法
归并排序是一种高效稳定的排序算法,时间复杂度为O(nlogn)。它的核心思想是将待排序序列分割成更小的子序列,然后逐步合并并排序这些子序列,最终得到一个有序序列。归并排序需要额外的空间来存储临时数组,但由于其分治的特性,适用于对链表和外部存储的排序。原创 2024-03-19 13:25:23 · 604 阅读 · 0 评论 -
一、C#冒泡排序算法
冒泡排序的名称来源于元素比较过程中,较大的元素会逐渐向右“冒泡”到正确的位置上。它的时间复杂度为O(n^2),在实际应用中适用于数据规模较小的情况。在实际应用中,我们需要根据具体情况选择合适的实现方式来平衡代码的可读性和排序效率。同时,如果对排序算法的效率要求较高,可以考虑使用其他更高效的排序算法,如快速排序或归并排序。未完待续。。。。。。。。。。。。。。原创 2024-03-14 23:31:32 · 1023 阅读 · 0 评论 -
六、C#快速排序算法
快速排序是一种高效的排序算法,它的优势在于平均时间复杂度为O(nlogn),在实际应用中通常表现出色。然而,最坏情况下的时间复杂度可能达到O(n^2),但通过合适的优化方法如随机选择基准元素、三数取中法等,可以避免最坏情况的发生,提高性能。递归方式简洁易懂但对于大数据量的排序可能会出现栈溢出的问题,而使用栈模拟递归则可以解决这个问题。原创 2024-03-19 17:31:40 · 421 阅读 · 0 评论 -
四、C#希尔排序算法
希尔排序简单的来说就是一种改进的插入排序算法,它通过将待排序的元素分成若干个子序列,然后对每个子序列进行插入排序,最终逐步缩小子序列的间隔,直到整个序列变得有序。希尔排序的主要思想是通过插入排序的优势,减小逆序对的距离,从而提高排序效率。原创 2024-03-19 13:17:29 · 585 阅读 · 0 评论 -
三 C#插入排序算法
插入排序算法是一种简单且直观的排序算法。它的时间复杂度为O(n^2),其中n是待排序数组的长度。插入排序在处理小型数据集时具有一定优势,但是对于大型数据集,插入排序的性能会较差。原创 2024-03-18 14:25:56 · 962 阅读 · 0 评论 -
二、C#选择排序算法
选择排序(Selection Sort)是一种简单的排序算法,其实现原理如下:遍历待排序数组,从第一个元素开始。假设当前遍历的元素为最小值,将其索引保存为最小值索引(minIndex)。在剩余的未排序部分中,找到比当前最小值还要小的元素,并更新最小值索引。在遍历结束后,将找到的最小值与当前遍历位置的元素进行交换。重复步骤2至4,直到排序完成。/// 选择排序算法Console.WriteLine("原始数组: ");Console.WriteLine("排序后的数组: ");原创 2024-03-18 14:12:38 · 875 阅读 · 0 评论 -
C#十大排序总结
未完待续。。。原创 2024-03-14 23:41:31 · 2051 阅读 · 0 评论 -
C#设计原则
通过依赖注入的方式,我们可以将具体的实现类传递给客户端,并根据需要调用相应的接口方法。在实际的开发过程中,并不是一定要求所有的代码都遵循设计原则,而是要综合考虑人力、成本、时间、质量,不刻意追求完美,要在适当的场景遵循设计原则。这样,我们遵循了开闭原则,对扩展开放(通过添加新的图形类型),对修改关闭(不需要修改现有代码)。在这个例子中,每个具体的实现类只关注自己需要用到的接口方法,而不需要实现多余的方法。通过将具体的子类对象赋值给基类引用变量,并调用相同的方法,我们可以看到不同形状的绘制操作被正确地执行。原创 2024-03-11 17:55:17 · 1525 阅读 · 0 评论 -
C#多线程-- 信号量(Semaphore)
百度百科:Semaphore,是负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。也是操作系统中用于控制进程同步互斥的量。Semaphore常用的方法有两个WaitOne()和Release(),Release()的作用是退出信号量并返回前一个计数,而WaitOne()则是阻止当前线程,直到当前线程的WaitHandle 收到信号。这里我举一个例子让大家更容易理解:当我们这样实例化S...原创 2019-06-04 17:22:03 · 717 阅读 · 1 评论 -
C# 对列(Queue)和堆栈(Stack)
C# 队列(Queue)队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队Queue 类的方法和属性属性 描述 Count 获取Queue中包含元素的个数 下表列出了 Queue 类的一些常用的 方法:序号 方法名 & 描...原创 2018-11-28 18:58:30 · 648 阅读 · 0 评论 -
C# ref与out关键字解析
简介:ref和out是C#开发中经常使用的关键字,所以作为一个.NET开发,必须知道如何使用这两个关键字.1、相同点ref和out都是按地址传递,使用后都将改变原来参数的数值。2、ref关键字(1)、使用ref关键字的注意点:i、方法定义和调用方法都必须显式使用 ref 关键字ii、传递到 ref 参数的参数必须初始化,否则程序会报错iii、通过ref的这个特性,一定程...原创 2018-11-28 18:23:56 · 220 阅读 · 0 评论 -
Unity Socket网络编程(TCP) 简单例子-1
开发工具:Visual Studio、Unity开发语言:C#【服务器端】在VS创建一个C#空项目代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threadi...原创 2018-09-11 12:54:17 · 1969 阅读 · 3 评论 -
【游戏设计模式】之三 状态模式、有限状态机 & Unity版本实现
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/52824776作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442 游戏开发过程中,各种游戏状态的切换无处不在。但很多时候,简单粗暴的if else加标志位的方式并不能很地道地解...转载 2018-08-10 15:04:21 · 283 阅读 · 0 评论 -
Unity Unet详细介绍
UNet常见概念简介Spawn:简单来说,把服务器上的GameObject,根据上面的NetworkIdentity组件找到对应监视连接,在监视连接里生成相应的GameObject.Command:客户端调用,服务器执行,这样客户端调用的参数必需要UNet可以序列化,这样服务器在执行时才能把参数反序列化。需要注意,在客户端需要有权限的NetworkIdentity组件才能调用Command命令。C...原创 2018-03-09 18:06:57 · 3096 阅读 · 0 评论 -
游戏中的存档
今天想和大家分享的内容是RPG游戏中游戏存档的实现,因为最近在做一个RPG游戏的项目,所以遇到这个问题就随时记录下来,在对知识进行总结的同时可以将这种思路或者想法分享给大家,这是一件快乐而幸运的事情。我讨厌写按部就班的技术教程,因为我觉得学习是一种自我的探索行为,如果一切都告诉你了,探索的过程便会变得没有意义了。游戏存档是一种在单机游戏中特别常见的机制,这种机制是你在玩网络游戏的时候无法体验到的,...转载 2018-03-14 13:18:47 · 6523 阅读 · 0 评论 -
2D游戏相机跟随
做2D游戏的时候,无非有三种模式,一种是只有竖直向上,一种是只有水平方向,一种是有水平又有竖直方向,我最近做游戏多关卡模式,不同模式就有着不一样的相机控制,按照平时的写法,也许有很多人就一下子写了三个相机脚本,现在我用了一个枚举类型来控制三个不一样的相机,贴代码:using UnityEngine; using System.Collections; public class Came...转载 2018-04-08 18:20:43 · 810 阅读 · 0 评论 -
2D游戏的相机跟随 (限定边框的)
Unity版本为5.3.2这篇文章主要是实现一下2d游戏中相机的跟随首先随便创建一个2d游戏场景,然后创建一个空物体,在空物体上加上一个boxcollider2d,调整大小,使它的范围包住背景(不是包住相机),也就是图中的边框上代码:using UnityEngine;using System.Collections;public class CameraController : MonoB...转载 2018-04-08 18:22:41 · 1648 阅读 · 1 评论 -
Unity中实现UGUI中的UI托拽功能
有些时候我们需要将打开的窗口进行托拽,一下脚本就可以实现using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;/// <summary>/// 主要用于窗口的拖动、、应用鼠标按下还有拖动...原创 2018-04-10 14:15:54 · 621 阅读 · 0 评论 -
Unity中 噪音算法
主要是利用Unity的 Mathf.PerlinNoise 函数(柏林噪声)的不同寻常的功能。https://docs.unity3d.com/ScriptReference/Mathf.PerlinNoise.html 其中一个实例代码是生成 柏林噪声图片。 第二个实例是动画效果(看似y轴的随机运动,对随机的动画来讲很好啊!)。 这样设置 得到: 1、Ma...转载 2018-04-16 12:55:46 · 3291 阅读 · 0 评论 -
C# partial 关键字详解
我们新建一个Windows Form时,后台代码都会自动添加如下代码:1public partial class Form1 : Form2 {3 public Form1()4 {5 InitializeComponent();6 }7 }为什么类Form1要用partial修饰?partial主要用在哪些地方? 为什么新建立的Winows Fo...转载 2018-04-25 16:41:54 · 805 阅读 · 0 评论 -
Windows下SVN回滚到旧版本(TortoiseSVN)
当发现新提交的代码有问题,然后想将某个旧的版本作为最新的版本时,可以使用回滚,操作步骤如下:1. 签出(CheckOut)最新版本的代码到电脑中(不能做任何修改)2. 执行TortoiseSVN的Show log操作, 在新签出的文件夹上右键,TortoiseSVN -> Show log, 如下图: 3. 回滚,这里有2种类型的回滚 3.1. 直接回滚...原创 2018-05-10 22:59:35 · 1297 阅读 · 0 评论 -
AI学习(二)基础类---------个体操控(1)
个体AI角色的操控行为de实现2.1 Seek 靠近[csharp] view plain copy print?using System.Collections; using System.Collections.Generic; using UnityEngine; /*靠近 *指定一个目标位置,根据当前的运动速度向量,返回一个操控AI角色到达该目标位置的“操控力” * 使...转载 2018-05-21 15:03:50 · 329 阅读 · 0 评论 -
AI学习(二)基础类---------个体操控(2)
个体AI角色的操控行为de实现2.4 Pursuit 追逐[csharp] view plain copy print?using System.Collections; using System.Collections.Generic; using UnityEngine; /*追逐 * 类似于靠近行为,但目标是移动的,要实现的是可以预测目标未来的位置 * 使用简单的预测器,计...转载 2018-05-21 15:05:34 · 363 阅读 · 0 评论 -
Unity中实现简单刮刮乐效果
Unity实现刮刮乐效果本文转自:http://www.manew.com/thread-113128-1-1.html,请点击链接查看原文,尊重楼主版权。网上看过了很多刮刮乐的文章,自己参考了一些,也改良了一些方法,比如说改良了画的每个点不连续的情况。具体效果如下:做出这种效果,其实挺简单,主要就是利用unity的render texture加上自己写的遮罩shader。 我们首先设置两个摄像机...转载 2018-05-28 15:55:50 · 3272 阅读 · 1 评论 -
[Unity实战]一个简单的任务系统
1.任务管理类与任务类是一对一的关系,而任务管理类与其他类是一对多的关系。对于一对多,比较容易想到的就是观察者模式了。在观察者模式中,是观察者决定要监视的东西,而不是事件的发生者决定谁观察它。2.对于任务类/任务条件类/任务奖励类来说,有逻辑意义上的,也有界面意义上的,因此要分开处理。这里给出主要的逻辑代码:[csharp] view plain copy print?using System.C...转载 2018-05-30 16:49:54 · 9931 阅读 · 2 评论 -
使用Unity3D的50个技巧:Unity3D最佳实践
刚开始学习Unity3D时间不长,在看各种资料。除了官方的手册以外,其他人的经验也是非常有益的。偶尔看到老外这篇文章,觉得还不错,于是翻译过来和大家共享。原文地址:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/,下面是译文。欢迎转载,请注明出处:燕良@游戏开发。另外,欢迎各路高手加入我...转载 2018-07-27 09:32:54 · 594 阅读 · 0 评论 -
【游戏设计模式】之四 《游戏编程模式》全书内容提炼总结
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/53240330作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442 本文的Github版本:QianMo/Reading-Notes/《游戏编程模式》读书笔记 这是一篇超过万字...转载 2018-08-10 15:02:33 · 272 阅读 · 0 评论 -
Unity中各种路径
关于Unity3D在各平台上的路径问题,网上有好多的资料,如下是比较好的参考资料:1、http://www.manew.com/thread-23491-1-1.html2、http://www.xuanyusong.com/archives/2656 这里我不详细解释和路径的用法,只把各个路径对应的位置和访问方式总结一下。1、Resources路径 Resources文件夹是Unity里自...转载 2018-03-15 15:20:59 · 14056 阅读 · 0 评论