
C#基础知识
qq_34702563
这个作者很懒,什么都没留下…
展开
-
菜鸟教程C#高级教程部分理解(一)委托与事件
委托与事件委托 Delegate所有的委托(Delegate)都派生自 System.Delegate 类。定义一个委托,该委托可用于引用带有完全相同参数和返回类型的方法。委托的多播(也叫组播、委托链):一个委托变量可以同时绑定多个方法,每一个委托(实际上是方法)都顺序指向下一个委托。可用运算符为= 、 += 、 -= 。事件 Event第一个地方(事件发布):可以在一个类中通...原创 2018-10-12 11:00:20 · 939 阅读 · 0 评论 -
async和await
摘自:C#基础系列——异步编程初探:async和await(1)在async标识的方法体里面,如果没有await关键字的出现,那么这种方法和调用普通的方法没什么区别。(2)在async标识的方法体里面,在await关键字出现之前,还是主线程顺序调用的,直到await关键字的出现才会出现线程阻塞。(3)异步方法的返回类型必须为void、Task或者Task类型。也就是说async要么是void...转载 2019-01-29 10:23:11 · 112 阅读 · 0 评论 -
GUID
摘自:Guid.NewGuidguid:全局唯一标识符应用举例: /// <summary> /// 生成文件路径(利用Guid) /// </summary> /// <param name="file"></param&g转载 2019-01-30 19:14:36 · 2110 阅读 · 0 评论 -
datetime 和 date的区别
Mysql中的DATE和DATETIME有什么区别?1、显示格式的区别Date显示格式:YYYY-MM-DD;DateTime显示格式:YYYY-MM-DD HH:mm:ss。2、显示范围的区别Date显示范围是1601-01-01 到 9999-01-01;DateTime显示范围是1601-01-01 00:00:00 到 9999-12-31 23:59:59。使用时,可以用Dat...转载 2019-02-11 10:09:37 · 2774 阅读 · 0 评论 -
C# ^
摘自:C#中^是什么符号?^ 位异或二进制异或运算,5是101,6是110,取异或为011,为3不同的时候得1,相同时为0转载 2019-02-11 11:46:14 · 999 阅读 · 0 评论 -
C# &和&&
摘自:C#中&和&&的区别1.&和&&都可以用作逻辑与的运算符,表示逻辑与(and)2.&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式3.&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算...转载 2019-02-11 11:49:51 · 1850 阅读 · 0 评论 -
SortedSet
摘自:Java SortedSet为什么可以实现自动排序?C# SortedSet<int> ts = new SortedSet<int> { 11, 1, 13 }; //ts....转载 2019-02-11 13:49:59 · 143 阅读 · 0 评论 -
HashMap
摘自:关于new HashMap&lt;&gt;(1)中1的理解(hashMap的加载因子)(注意评论)摘自:hashmap的实现原理 数组 entry摘自:HashMap实现原理及源码分析Entry是hashMap中封装key-value键值对的。HashMap的属性分析public class HashMap&lt;K,V&gt; extends AbstractMap&l...转载 2019-02-11 14:41:51 · 157 阅读 · 0 评论 -
abstract virtual
摘自:c#中abstract和virtual的用法和区别abstract抽象类不能被实例化,只能被继承抽象方法子类必须实现virtual只有virtual的方法可以被子类override转载 2019-02-12 10:26:48 · 174 阅读 · 0 评论 -
vector list
摘自:数组,vector,map,list,queue区别摘自:C++面试题之list和vector的区别1.vector数据结构vector和动态数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。2.list数据结构list是由双向链表实现的,...转载 2019-02-12 11:13:11 · 152 阅读 · 0 评论 -
未提供必须形参对应的实参怎样解决
摘自:未提供必须形参对应的实参怎样解决 abstract public class User { private IMediator mediator; public IMediator GetMediator() { return mediator; } //构造函数 pub...原创 2019-02-13 14:45:36 · 8083 阅读 · 0 评论 -
Enum.IsDefined(typeof(EType), EType.XX))
判断指定枚举(EType)中 是否存在指定值(Value) var yearOld = EType.ThreeYearOld; var yearOld1 = 0; if (!Enum.IsDefined(typeof(EType), yearOld)) { Console...原创 2019-03-01 16:48:43 · 814 阅读 · 0 评论 -
Except()实体类的比较
参考:Enumerable.Except 方法参考:添加链接描述except()不能用来比较结构体 即使内容一样也会判定不一样。可以通过在实体类上实现IEquatable接口自定义比较器。...转载 2019-04-30 14:29:06 · 672 阅读 · 0 评论 -
C# new override
摘自:C# new和override区别(转)摘自:浅析C# new和override的区别new、override与interface :接口在相互继承的时候也会隐藏基接口的同名属性或函数,但是对于接口来说很特殊,隐藏对于基接口来说是不起作用的,接口内部的属性和函数都只是声明,它们都指向实现接口的类中的同名实现函数,通过接口调用接口的属性和函数的时候都会去调用实现类中从上到下最先可见的同名...转载 2019-02-03 11:14:56 · 144 阅读 · 0 评论 -
IOptions
摘自:.NET Core 中 IOptions 有什么用通过appsettings.json对客户端进行配置。{ &quot;topClient&quot;: { &quot;serverUrl&quot;: &quot;&quot;, &quot;appKey&quot;: &quot;&quot;, &转载 2019-02-01 14:58:18 · 787 阅读 · 0 评论 -
C# as
C#里的类型转换参考 https://zhidao.baidu.com/question/588682617.html从下到上,可以直接转换。从上到下,必须显式转换(强转)。而且“上”和“下”必须同时继承 或实现了同一个类型 或 接口 才可以用 as。as概念as:非强转类型。强转类型:一般在变量前面加:(所需类型)。如果转换失败,系统就会报错。如果用as,就不会报错,转换失败的话,...原创 2018-10-12 11:59:28 · 670 阅读 · 0 评论 -
C#基础 internal关键字、Take()Skip()SubString()比较
参考:C#中Internal关键字的总结首先,了解下程序集的概念:一个项目就是一个程序集。一个程序集可以体现为一个dll文件,或者exe文件。internal(内部):限定的是只有在同一程序集中可访问,可以跨类。protected(受保护):限定的是只有在继承的子类中可访问,可以跨程序集。...原创 2018-10-12 15:18:48 · 300 阅读 · 0 评论 -
Select Count(*)、Count(1)、Count(0)的区别和执行效率比较(纯总结)
纯总结,观后笔记一样的存在,若理解有误欢迎指正!这是我围观的文章1这是我围观的文章2W3School对SQL count()的解释首先,COUNT() 函数的定义:返回匹配指定条件的行数。COUNT(*) 函数返回表中的记录数,包括 NULL 值和重复项。不能与 DISTINCT 一起使用。不需要 expression 参数,因为根据定义,该函数不使用有关任何特定列的信息。也就是说co...原创 2018-10-29 16:28:51 · 10051 阅读 · 3 评论 -
string 使用 long.parse()
string 变量 使用long.parse() 方法转换为long 类型报错使用示例:var Ids = exam.Path.TrimEnd(’,’).Split(’,’).Select(p =&gt; { return long.Parse§; }).ToArray();原创 2019-01-17 11:09:46 · 681 阅读 · 0 评论 -
Linq All() Any()
Linq扩展方法之All 、Anyall() :如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true;否则为 false。any() :如果源序列包含任何元素,则为 true;否则为 false。如果源序列中的任何元素都通过指定谓词中的测试,则为 true;否则为 false,序列为空时也为false。...转载 2019-01-17 14:48:09 · 1445 阅读 · 0 评论 -
string.Format
string.Format对C#字符串格式化可以转为以下格式 :货币十进制科学计数法日期用分号隔开的数字十六进制百分比……转载 2019-01-17 14:59:57 · 137 阅读 · 0 评论 -
Linq-Enumerable类
摘自:C#高级功能(二)LINQ 和Enumerable类 //group 分组 var queryGroups = from score in scores group score by score; //into 存储查询的内容 //// percentileQuery is an IEnum...转载 2019-01-18 11:38:08 · 216 阅读 · 0 评论 -
Math.Round() 银行家舍入
四舍五入VS银行家舍入 (四舍六入五取偶)银行家舍入的规律:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一Math.Round() ——银行家舍入Math.Round(4.5, MidpointRounding.AwayFromZero) = 5 ——实现四舍五入...转载 2019-01-24 11:58:05 · 565 阅读 · 0 评论 -
Yield Return
摘自:彻底搞懂C#之Yield Return语法的作用和好处我们假如有1000000个数据,我们需要得到里面的耦合,当我们通过这个方法得到一个耦合会立马显示在控制台上。而不是等很久也就把全部偶数都查找到存入集合当中,然后在一一遍历输出。这个好处是很大的。比如我们用户可能就看数据开始肯定不是全部值需要部分就可以,看完这些在看后面的,这样数据会让觉得显示没有延迟。...转载 2019-01-24 19:13:22 · 426 阅读 · 1 评论 -
组元Tuple
摘自:c#编程指南(四) 组元(Tuple)组元多用于方法的返回值。如果一个函数返回多个类型,这样就不在用out , ref等输出参数了,可以直接定义一个tuple类型就可以了。例子:Tuple<int, int> test1 = Tuple.Create<int, int>(1,2);//create初始化Tuple<int, Tuple<int>...转载 2019-01-24 21:01:41 · 179 阅读 · 0 评论 -
数据注解对string类型长度的约束
Required :可以过滤 “”、" "MaxLength(8) :不能过滤 “”、" "MinLength(1) :可以过滤 “”,不能过滤" "StringLength(8) :不能过滤 “”、" "所以感觉MaxLength和StringLength功能一样。能否对列表里的string作约束?不能。...原创 2019-01-25 16:29:49 · 4542 阅读 · 0 评论 -
修饰符-访问修饰符internal sealed
摘自:internal(C# 参考)摘自:sealed(C# 参考)Internal:访问仅限于当前程序集。protected internal:访问限制到当前程序集或从包含派生的类型的类别。程序集就是代码编译后bin目录下生产的.exe或者.dll文件,就等同于一个项目一个程序集。/*项目ConsoleApp1*/using ConsoleApp1_2;using ConsoleA...转载 2019-01-31 14:01:16 · 1875 阅读 · 0 评论 -
泛型
摘自:泛型类摘自:where(泛型类型约束)定义:在定义泛型的时候,我们可以使用 where 限制参数的范围。使用:在使用泛型的时候,你必须尊守 where 限制参数的范围,否则编译不会通过。namespace TestT{ class BaseNode { } class BaseNodeGeneric&lt;T&gt; { } //concrete type...转载 2019-01-31 14:43:58 · 98 阅读 · 0 评论 -
C# ?. 与 ??
在这一句中, string sname=school?.name??string.Empty;如果没有第一个?,当school为null时会报错。加了以后不报错。原创 2019-04-30 17:15:07 · 201 阅读 · 0 评论