
c#
文章平均质量分 95
萌新求带
Gamer.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity中字符串拼接0GC方案
本文主要分析C#字符串拼接产生GC的原因,以及介绍名为的库,它可以将字符串生成的内存分配为零。原创 2024-02-27 23:10:43 · 2110 阅读 · 0 评论 -
C# #if, #else和#endif预处理指令
#if 使您可以开始条件指令,测试一个或多个符号以查看它们是否计算为 true。如果它们的计算结果确实为true,则编译器将计算位于 #if 与最近的 #endif 指令之间的所有代码。例如,1 #if DEBUG 2 string file = root + "/conf_debug.xml"; 3 #else 4 string fi转载 2018-02-24 10:30:41 · 1592 阅读 · 0 评论 -
Optional parameters must appear after all required parameters
今天敲代码时遇到了一个错误,百度了一下没有找到答案。于是仔细看了一下这个报错,说的是:Optional parameters must appear after all required parameters.翻译过来就是:可选参数(Optional Parameters)必须放在最后。源代码:public void Test(int num, string s = null, bool flag...原创 2018-03-22 16:29:39 · 3298 阅读 · 2 评论 -
C# CultureInfo中常用的InvariantCulture
C# CultureInfo中常用的InvariantCulture本文参考自CultureInfo中重要的InvariantCulture,纯属读书笔记,加深记忆1、CultureInfo的InvariantCulture的作用(1)、CultureInfo使整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区转载 2018-03-13 10:37:50 · 2222 阅读 · 0 评论 -
C#中删除字符串中空格
(1)Trim方法C#中Trim()、TrimStart()、TrimEnd()的用法: 这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。 如果这三个函数带上...原创 2018-03-21 14:15:05 · 3711 阅读 · 0 评论 -
C#之保留指定小数点位数
[csharp] view plain copyROUND()是C#中math的一个成员函数.System.Math.Round(),这个函数有四种用法, [csharp] view plain copy最长用的是对小数点位数的舍入.但这和现实生活中的“四舍五入”有一定区别, [csharp] view plain copy也有别JAVA中Math.Round(),跟sql中的Math.Rou...转载 2018-05-03 20:41:35 · 1840 阅读 · 0 评论 -
C#虚方法virtual详解
转:http://www.cnblogs.com/jason_yjau/archive/2009/08/25/1553949.htmlC#虚方法virtual详解在C++、Java等众多OOP语言里都可以看到virtual的身影,而C#作为一个完全面向对象的语言当然也不例外。虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在...转载 2018-04-26 11:18:39 · 397 阅读 · 0 评论 -
C# GC原理
在初学阶段用.Net编写程序时,一直都未曾考虑过程序垃圾资源回收率的问题,那是因为老师老在课堂讲什么不用管,不用理会,一听到不用理会,好吧,从此写程序就肆无忌惮的了!程序卡死、内存暴涨、顺便偶尔来几个内存错误,一看到这个就头大了。现在想想,课堂老师讲的那句话,却只听进了前半句。。。闲聊无事,也不用再怕什么在职防止泄露啥啥机密、啥啥技术的、、、嘎嘎、、、、(下面的纯属个人观点,如有雷同、敬请绕道、、...转载 2018-05-24 20:50:17 · 1555 阅读 · 0 评论 -
StringBuilder类的Capacity属性和Length属性
StringBuilder 类表示可变字符的字符串。 名称 说明 Capacity属性 获取或设置可包含在当前实例所分配的内存中的最大字符数 Length属性 获取或设置当前 StringBuilder 对象的长度 StringBuilder 类Capacity属性...原创 2018-11-18 18:47:33 · 630 阅读 · 0 评论 -
[C#] 时间函数: 自1970.1.1起至今的毫秒数(与Java一致)
C#中没有这个函数,所以从网上借鉴了一个。记录一下,备用。/// <summary> /// 返回当前时间的毫秒数, 这个毫秒其实就是自1970年1月1日0时起的毫秒数 /// </summary> public static long currentTimeMillis() { return (System....原创 2018-11-27 22:21:38 · 2392 阅读 · 0 评论 -
设计模式之我见(二)——策略模式
假如现在你的公司接到了一个项目,要做商场里的促销系统。老实说,这难不倒学过简单工厂模式的你。嗯,话虽如此,我们还是先来使用简单工厂简单实现一下,毕竟就怕眼高手低,用的不熟练。//现金收费抽象类abstract class CashSuper{ //参数为原价,返回打折价 public abstract double acceptCash(double money)...原创 2019-03-17 21:18:37 · 189 阅读 · 0 评论 -
Throwing an Invalid Cast Exception?... 拆箱引起的一个错误
隐式和显示转换通常都非常简单:int i = 5;float f = i; // int32到float的隐式转换Byte b = (Byte) i; // int32到byte的显示转换如果一不留神,安全的显示数值转换会引发一个运行时异常:Object i = 5;float l = (float) i; // System.InvalidCastException: S...翻译 2019-08-22 20:29:24 · 750 阅读 · 0 评论 -
C#构造函数里的base和this的区别
用法一:转载 2018-02-09 11:47:58 · 175 阅读 · 0 评论 -
C# HashSet
HashSet是一个相对“冷门”的类型,平时在项目中用得不多,但是在特定的业务中可以大用。先来了解下HashSet类,主要被设计用来存储集合,做高性能集运算,例如两个集合求交集、并集、差集等。从名称可以看出,它是基于Hash的,可以简单理解为没有Value的Dictionary。HashSet不能用索引访问,不能存储重复数据,元素T必须正确实现了Equals和GetHashCode转载 2018-01-26 16:46:59 · 2533 阅读 · 0 评论 -
C#中的static、readonly与const的比较
C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景。 工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量。 const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值。 下面声明两个常量:转载 2018-01-26 16:28:18 · 236 阅读 · 0 评论 -
C# Default使用
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:T 是引用类型还是值类型。如果 T 为值类型,则它是数值还是结构。给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。 解决方案是使用 default 关键字,此关转载 2017-02-22 12:56:25 · 509 阅读 · 0 评论 -
数组、List和ArrayList的区别
有些知识点可能平时一直在使用,不过实际开发中我们可能只是知其然不知其所以然,所以经常的总结会对我们的提高和进步有很大的帮助,这里记录自己在工作之余的问题,持续更新,欢迎高手斧正. 数组、List和ArrayList的区别 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如:string[] s=new string[3];//赋值转载 2017-06-30 22:30:19 · 228 阅读 · 0 评论 -
Unity和C#有关Time的函数
刚进公司一个月,笔者在总监的帮助下完成了自己的第一个游戏——《粉红小猪爱做饭》。虽然游戏质量很一般,但我也通过这个游戏学习到了一些东西,有关编码技巧和设计方面的思考,在这里记录一下。文章很浅显还可能有错误,望各位看官多多指教。主要还是来说下游戏设计方面的思路吧,一个游戏的规则要足够明确,不然会让玩家玩的云里雾里的,自然也就没什么吸引力了。但这种明确要怎么体现呢,我们不可能像编程一样给玩家提供一个AP原创 2017-08-18 14:21:00 · 2238 阅读 · 0 评论 -
C#的抽象类和接口的区别
以下是我在网上看到的几个形象比喻:1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。 门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能原创 2017-08-12 09:57:26 · 278 阅读 · 0 评论 -
C#中的is和as操作符
在C#语言中进行类型转换的操作符is和as。is和as都是强制类型转换,但这两者有什么相同之处和不同之处呢?在使用is和as需要注意哪些事项?下面我们从简单的代码示例去探讨这个简单的问题。注:此博文只是本人学习过程中一些简要记录,新手可以看一下,高手略过。is检查一个对象是否兼容于指定的类型,并返回一个Boolean值:true或者fasle。注意,is操作符永远不会抛出异常,请看以下示例:转载 2017-07-28 09:12:34 · 333 阅读 · 0 评论 -
VS2013常用快捷键
VS2013常用快捷键: 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键“Ctrl + -”; 2)前进到下一个光标位置:“Ctrl + Shift + - ”。 2.复制/剪切/删除整行代码 1)如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行。 2)如果你想剪原创 2017-03-08 15:04:47 · 286 阅读 · 0 评论 -
C#回调函数和闭包
整理自http://bbs.youkuaiyun.com/topics/390622815回调函数,这一般是在C语言中这么称呼,对于定义一个函数,但是并不由自己去调用,而是由被调用者间接调用,都可以叫回调函数。本质上,回调函数和一般的函数没有什么区别,也许只是因为我们定义了一个函数,却从来没有直接调用它,这一点很奇怪,所以有人发明了回调函数这个词来统称这种间接的调用关系。在包括C#在内的很原创 2017-09-11 10:27:09 · 1133 阅读 · 0 评论 -
C#中string.format用法详解
本文实例总结了C#中string.format用法。分享给大家供大家参考。具体分析如下:String.Format 方法的几种定义:String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。String.Format (String, Object[]) 将指定 String 中的格式项替换转载 2017-10-25 11:49:33 · 482 阅读 · 0 评论 -
C#基础知识之this关键字介绍
本文主要介绍this关键字的几种使用方法,this可以代表当前实例,可以调用其他构造函数,还可以用来构建索引器,这里都有一一举例说明。一、this可以代表引用类的当前实例,包括继承而来的方法,通常可以省略。复制代码代码如下:public class Person{ public string Name { get; set; }转载 2017-10-17 11:15:05 · 606 阅读 · 0 评论 -
C#中??和?
1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:string str=null; 是正确的,int i=null; 编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int? 表示可空的整形,DateTime? 表示可为空的时间。T? 其实是System.Nullable转载 2018-01-26 15:49:48 · 217 阅读 · 0 评论 -
C#中Console.WriteLine()的用法
以前用Console.WriteLine()的时候就只会用它直接输出string字符串,但后来发现它还有其它在有些场合下会十分方便的输出方法,这篇就记录一下这些方法的使用吧。代码格式我就不写了,因为写了也不好理解,所以直接上示例了。 ①static void Main(string[] args){ int i = 6; string s = "输出";转载 2017-02-20 16:03:31 · 10158 阅读 · 0 评论