04 2020 档案

摘要:1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str=null; 是正确的,int i=null; 编译器就会报错。 为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?" 例如:int? 阅读全文
posted @ 2020-04-28 00:26 NiKaFace 阅读(552) 评论(0) 推荐(0)
摘要:1 bool? Flag1 = null | true; //true 2 bool? Flag2 = null | false; //null 3 bool? Flag3 = null & true; //null 4 bool? Flag4 = null & false; //false 阅读全文
posted @ 2020-04-27 15:42 NiKaFace 阅读(1239) 评论(0) 推荐(0)
摘要:当初没有认真理解 yield 这个关键字,现在又遇到了依旧不理解,为了以后不再为了 yield 困惑,决定好好研究一下 yield 的用法与意义: yield 从字面上理解有“退位,屈服”的意思,转一下弯就理解成“权限转移”,也就是将控制权交给别人,在这里就是把集合里满足条件(如果没有过滤条件,就是 阅读全文
posted @ 2020-04-27 00:29 NiKaFace 阅读(928) 评论(1) 推荐(1)
摘要:今天来讲解一下开发人员会用但不理解的C#中的知识,这篇文章我们讲解一下枚举器与迭代器的知识。 枚举器 什么是枚举器? 枚举器(enumerator)是一个只读的作用于序列值的只能向前的游标,并且实现了System.Collections.IEnumeratar 或者 System.Collectio 阅读全文
posted @ 2020-04-26 23:55 NiKaFace 阅读(705) 评论(0) 推荐(0)
摘要:要理解事件,首先必须理解委托!! 1、如果说委托是一个类型,那么事件就是一个对象! 2、事件的创建必须是借助某个委托类型来完成的! 3、也就是说,委托是事件的类型,事件本身是个对象!! 4、所以,事件也可以看成是一个,受到约束的委托实例(委托对象)。 我们知道委托存在多播委托:(也就是一个委托可以指 阅读全文
posted @ 2020-04-25 16:33 NiKaFace 阅读(274) 评论(0) 推荐(0)
摘要:索引器(Indexer): 索引器允许类或者结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于他们的访问采用参数。 最简单的索引器的使用 /// <summary> /// 最简单的索引器 /// </summary> public class IDXer { private s 阅读全文
posted @ 2020-04-24 17:05 NiKaFace 阅读(477) 评论(0) 推荐(0)
摘要:介绍 非线程安全的单例版本 简单线程安全版本(通过lock实现) Double-checked locking 不完全懒汉式,但不加锁的线程安全 完全懒汉实例化 使用.NET 4 Lazy<T> type 特性 性能 vs 懒汉式 Exceptions 总结 介绍 单例模式是软件工程学中最富盛名的设 阅读全文
posted @ 2020-04-24 16:02 NiKaFace 阅读(1074) 评论(2) 推荐(0)
摘要:摘要 ● 协变和逆变的定义是什么?给我们带来了什么便利?如何应用? ● 对于可变的泛型接口,为什么要区分成协变的和逆变的两种?只要一种不是更方便吗? ● 为什么还有不可变的泛型接口,为什么有的泛型接口要故意声明成不可变的? ● 复合的可变泛型接口遵循哪些规则? ● 协变和逆变的数学定义是什么?如何利 阅读全文
posted @ 2020-04-24 15:13 NiKaFace 阅读(302) 评论(0) 推荐(0)
摘要:结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义无参构造函数。无参构造函数(默认)是自动定义的,且不能被改变。 与类不同,结构不能继承其他的结构或类。 结构不能作为其他结构或类的基础结构。 结构可实现一个或多个接口。 结构成员不能指 阅读全文
posted @ 2020-04-23 23:02 NiKaFace 阅读(264) 评论(0) 推荐(0)
摘要:装箱 就是把“值类型”转换成“引用类型”(Object); 拆箱 就是把“引用类型”转换成“值类型”; //装箱 boxing int i = 3 ; //分配在栈上 object o = i ;//隐式装箱操作,int i 在堆上 object b = (object)i ; //显示装箱操作 / 阅读全文
posted @ 2020-04-23 16:48 NiKaFace 阅读(281) 评论(0) 推荐(0)
摘要:为什么一个对象可以用父类声明,却用子类实例化 这个实例是子类的,但是因为你声明时是用父类声明的,所以你用正常的办法访问不到子类自己的成员,只能访问到从父类继承来的成员。 在子类中用 override 重写父类中用 virtual 申明的虚方法时,实例化父类调用该方法,执行时调用的是子类中重写的方法; 阅读全文
posted @ 2020-04-23 11:04 NiKaFace 阅读(1277) 评论(0) 推荐(0)
摘要:这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静 阅读全文
posted @ 2020-04-22 08:45 NiKaFace 阅读(118) 评论(0) 推荐(0)
摘要:C#有很多语法糖,有时使用时会觉得模棱两可, 以前很少用Predicate,因为英文太长,不如Func实在,在我感觉中,这两个本该就是同一个东西。但你会发现:(1)List类的所有方法如Exists, Find, FindAll, FindIndex等全是接受Predicate<T>类型参数的。(2 阅读全文
posted @ 2020-04-15 18:28 NiKaFace 阅读(619) 评论(0) 推荐(0)
摘要:值类型和引用类型的区别,struct和class的区别 C#值类型和引用类型 1、简单比较 值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。 值类型(value type):byte,short,int,long,float,double,decimal,char, 阅读全文
posted @ 2020-04-14 21:14 NiKaFace 阅读(447) 评论(0) 推荐(0)
摘要:一、引言 C#中参数的传递方式可以分为两类,按值传递和按引用传递。如果再根据参数的类型进行细分,大致可以分为如下四种: 值类型的按值传递 引用类型的按值传递 值类型的按引用传递 引用类型的按引用传递 string类型作为一种特殊的引用类型,部分人认为在作为参数进行传递的时候,它的表现与其他的引用类型 阅读全文
posted @ 2020-04-14 20:36 NiKaFace 阅读(1669) 评论(0) 推荐(0)
摘要:本文不介绍IoC和DI的概念,如果你对Ioc之前没有了解的话,建议先去搜索一下相关的资料 这篇文章将简单介绍一下AutoFac的基本使用以及在asp .net core中的应用 Autofac介绍 组件的三种注册方式 反射 现成的实例(new) lambda表达式 (一个执行实例化对象的匿名方法) 阅读全文
posted @ 2020-04-07 10:56 NiKaFace 阅读(181) 评论(0) 推荐(0)
摘要:原因:IIS的默认处理程序默认情况下只允许GET,POST,HEAD和调试方法。而不能使用PUT和Delete操作。 解决方法:将WebDAV发布选项去掉 阅读全文
posted @ 2020-04-03 11:57 NiKaFace 阅读(472) 评论(0) 推荐(0)