随笔分类 -  C#

摘要:解决方案: //主要用到向下兼容原理,DateTime?继承于DateTime;string req = "为字符串的参数";DateTime? dt = null;DateTime? time = string.IsNullOrEmpty(req) ? dt : Convert.ToDateTim 阅读全文
posted @ 2020-07-08 17:00 在西天取经的路上……
摘要:internal修饰符可以用于类型或成员,使用该修饰符声明的类型或成员只能在同一程集内访问,接口的成员不能使用internal修饰符。 就是使用internal的类只能在同一个项目中使用,不能在别的项目中使用,比如你的解决方案中有两个项目,那么只能在其所在的一个使用,就像是不能在Dll中傅它,因为这 阅读全文
posted @ 2019-02-27 14:22 在西天取经的路上……
摘要:1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,任然是 阅读全文
posted @ 2019-01-10 17:05 在西天取经的路上……
摘要:params 是C#中的可变参数, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候。 关于参数数组,需掌握以下几点。 (1)在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字; (2)参数数组必须是一维数组; ( 阅读全文
posted @ 2018-11-15 15:55 在西天取经的路上……
摘要:一、静态类 [1] 仅包含静态成员。 [2] 静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化。也就是说,不能使用 new 关键字创建静态类类型的变量。 [4] 不能包含实例构造函数。 [5] 如果一个类下面的所有成员,都需要被共享,那么可以把这个类定义为静态类。 二、静态成员 1、 阅读全文
posted @ 2018-08-21 08:32 在西天取经的路上……
摘要:继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系; 实现 指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系; 依赖 可以简单的理解,就是一个 阅读全文
posted @ 2018-08-16 17:03 在西天取经的路上……
摘要:一直想得到这样一个函数,输入一个类的名称为参数,返回一个相应的类的实例. 这在工厂模式中是非常有用的 这样,可以使程序有更高的扩展性,例如,,下面的例子 如果现在有一个类,专门用来计算交通工具的速度,不同的交通工具计算方法是不一样的,但是到底有那些交通工具是未知的或者是可变的,这种情况下,我们可能觉 阅读全文
posted @ 2018-08-16 14:13 在西天取经的路上……
摘要:Partial是局部类型的意思。允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。C#编译器在编译的时候仍会将各个部分的局部类型合并成一个完整的类 局部类型的注意点1. 局部类型只适用于类、接口、结构,不支持委托和枚举。只有和 class、struct、interface  阅读全文
posted @ 2018-08-10 14:53 在西天取经的路上……
摘要:DTO即数据传输对象。 简单来说Model面向业务,我们是通过业务来定义Model的。而DTO是面向界面UI,是通过UI的需求来定义的。通过DTO我们实现了表现层与Model之间的解耦,表现层不引用Model,如果开发过程中我们的模型改变了,而界面没变,我们就只需要改Model而不需要去改表现层中的 阅读全文
posted @ 2018-08-09 17:36 在西天取经的路上……
摘要:Cache.Add(key,value)或者Cache.Insert(key,value); 不加任何时间限制,增加的数据是不会过期的。 Add方法重复键值是不会在增加的,Insert数据是会覆盖重复的键值。 输出缓存 这是最简单的缓存类型,它保存发送到客户端的页面副本,当下一个客户端发送相同的页面 阅读全文
posted @ 2017-08-11 18:11 在西天取经的路上……
摘要: 阅读全文
posted @ 2017-08-10 12:00 在西天取经的路上……
摘要:where 子句用于指定类型约束。 1.接口约束 2.基类约束: 指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型类型的类型参数。 这样的约束一经使用,就必须出现在该类型参数的所有其他约束之前。 class MyClassy<T, U> where T : class wher 阅读全文
posted @ 2017-06-28 15:31 在西天取经的路上……
摘要:什么是延迟加载? 延迟加载顾名思义就是:推迟加载的时机,当真正使用的时候才加载。 通常在创建一个大对象时,有些属性我们可以在使用到的时候才去创建(设置属性的值),这个可以有效的提升系统性能。 示例: 改进一: 改进二: Lazy<T>的优势 那么既然我们已经可以用属性缓存的方法实现, 为什么还要引入 阅读全文
posted @ 2016-12-28 16:14 在西天取经的路上……
摘要:在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举 枚举名是不能出现空格,()-/等字符 我们想把Spring显示为春天,我们要自己定义说明信息,我们可以使用DescriptionAttribute,如下 下面我们来写个扩展方法,来得到枚举的说明信息,如下 把枚举转换为键值对集合 阅读全文
posted @ 2016-12-28 14:27 在西天取经的路上……
摘要:在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。 ArrayList、List<T> ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。 但是ArrayList也有一个缺点,就是存入ArrayL 阅读全文
posted @ 2016-12-28 10:07 在西天取经的路上……
摘要:1、typeof(x)中的x,必须是具体的类名、类型名称等,不可以是变量名称。 2、GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型。 比如有这样一个变量i: Int32 i = new Int 阅读全文
posted @ 2016-12-27 17:10 在西天取经的路上……
摘要:说到正确用法,那么首先应该指出一个错误用法: 常有人会拿var这个关键字来和dynamic做比较。实际上,var和dynamic完全是两个概念,根本不应该放在一起做比较。var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看 阅读全文
posted @ 2016-12-27 14:56 在西天取经的路上……
摘要:先来说下C#中的数据类型.分值类型和引用类型两大类. 值类型:直接存储数据的值,保存在内存中 引用类型:存储对值的引用,实际上存储的就是一个内存的地址 C#预定义的简单类型,像int,float,bool,char都是值类型,另外enum(枚举),struct(结构)也是值类型 string,数组, 阅读全文
posted @ 2016-12-21 18:09 在西天取经的路上……
摘要:首先:两者都是按引用传递的,使用后都将改变原来参数的数值。 其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空。这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。 ref(C# 参考) 阅读全文
posted @ 2016-12-01 14:13 在西天取经的路上……
摘要:格式说明符 说明 示例 输出 C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2") 25.00 (默认2位 阅读全文
posted @ 2016-11-25 16:41 在西天取经的路上……