c#
webad2015
这个作者很懒,什么都没留下…
展开
-
运算符重载
一、简介 平时我们使用的运算符都是C#内置定义好的,比如+-*/等等,但是我们项目中遇到复杂一点的运算方式,只能我们自己重载相应的运算符。比如两个类相加+,我们可以重载类的+运算符,在函数里面,自定义我们的规则。 C# 通过使用operator关键字定义静态成员函数,来允许用户定义的类型重载运算符。二、详细说明 不过并非所有运算符都可以进行重载,并且其他运算符具有...转载 2019-07-02 10:37:07 · 195 阅读 · 0 评论 -
枚举和迭代器
1 枚举器为什么数组可以使用 foreach 输出各元素?这是因为数组是 枚举类型(enumerable) ,它通过 GetEnumerator 方法提供一个 枚举器(enumerator),即能实现 GetEnumerator 方法的类型是 枚举类型枚举器可以依次返回请求的数组的元素,枚举器知道 项的次序 并跟踪它的序列位置,然后返回 请求的当前项对象枚举类型获取枚举器的方法是调用对象的...转载 2019-07-01 14:15:37 · 256 阅读 · 0 评论 -
泛型类、泛型集合、泛型方法、泛型约束、泛型委托入门学习
泛型优点官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/generics/introduction-to-generics简介:泛型是.NET Framework2.0新增的一个特性,在命名空间System.Collections.Generic,包含了几个新的基于泛型的集合类,官方建议.net 2....转载 2019-07-01 13:41:06 · 1121 阅读 · 0 评论 -
反射学习
实现步骤:导入using System.Reflection;Assembly.Load(“程序集”)加载程序集,返回类型是一个Assemblyforeach (Type type in assembly.GetTypes()){string t = type.Name;}得到程序集中所有类的名称Type type = assembly.GetType(“程序集.类名”);获取当前...转载 2019-07-05 15:05:40 · 104 阅读 · 0 评论 -
泛型的多种应用
泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性、类型安全性和效率。关于泛型的理解可以总结下面的一句话,它是把数据类型作为一种参数传递进来。下边的这段代码是泛型的一个最简单的应用using System;using System.Collections.Generic;using System.Text;namespace Console...转载 2019-06-29 15:23:46 · 179 阅读 · 0 评论 -
虚方法(Virtual)、抽象方法(Abstract),接口(Interface)、抽象类的区别
一、虚方法和抽象方法的区别:1、抽象方法只能在抽象类里面声明,而且抽象方法不能有实现(不能有方法体)。2、虚方法在声明时必须有实现。public abstract class test { /// 在抽象类中声明了抽象方法 public abstract string AbstractMethod(); ...转载 2019-06-29 14:03:17 · 1198 阅读 · 0 评论 -
异步 Task类,async/await
原理其实不管是Task,ThreadPool,本质最终都是Thread。只不过微软帮我们在简化线程控制的复杂度。线程池是CLR中事先定义好的一些线程。Task取的线程池,只不过在语法上,可以非常方便取返回值。异步会提高程序的运行速度吗多线程会提高程序的效率,不会提高运行速度。这就好比这一个任务让前台花1个小时。前台完成10分钟的时候打电话给经理,让他安排一个人来干30分钟(new Th...转载 2019-07-04 16:49:56 · 293 阅读 · 0 评论 -
匿名类型
匿名类型允许我们创建无名类类型的特性。匿名类型(anonymous type)经常用于LINQ查询的结果中。第6章介绍了对象初始化语句,它允许我们在使用对象创建表达式时初始化新类实例的字段和属性。提醒一下,这种形式的对象创建表达式由三部分组成:new关键字、类名或构造函数以及对象初始化语句。对象初始化语句在一组大括号内包含了以逗号分隔的成员初始化列表。创建匿名类型的变量使用相同的形式,但是没...转载 2019-06-28 15:16:41 · 204 阅读 · 0 评论 -
静态类和单例模式区别
观点一:(单例)单例模式比静态方法有很多优势:首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;再次,单例类可以被集成,他的方法可以被覆写;最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配置集,或者可能需...转载 2019-06-28 14:42:25 · 3066 阅读 · 0 评论 -
长度可变参数--Params 使用须知
Params用于参数的数量可变的情况下,即参数的个数是未知数。使用Params需要知道以下几点:1、如果函数传递的参数含有多个,使用Params标记的参数数组需要放在最后图上显示的很明确,不需要多解释,只能使用A的那种排序方式2、Params修饰的一定要是数组,而且必须是一维数组3、Params不能和ref、out组合使用具体参见Hunts.C前辈的文章http:/...转载 2019-06-28 14:30:07 · 726 阅读 · 0 评论 -
引用类型和值类型在数组、LIST中的分析
using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Text;using System.Threading.Tasks;namespace learn{ class Program { ...原创 2019-07-03 15:43:41 · 178 阅读 · 0 评论 -
泛型与非泛型集合类的区别及使用例程
非泛型集合类 泛型集合类 描述 ArrayList List<T> 表示具有动态大小的对象数组 Hashtable Dictionary<Tkey,Tvalue> 由键值对组成的集合 ...转载 2019-07-02 23:06:54 · 747 阅读 · 0 评论 -
委托应用总结
一、什么是委托1.1官方解释委托是一种定义方法签名的类型。当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。您可以通过委托实例调用方法。1.2个人理解委托就是执行方法(函数)的一个类。事件是一种特殊的委托。二、如何申明委托2.1 delegatepublic delegate int TestDelegate(int x, int y);2.2 ActionActi...转载 2019-07-02 18:45:04 · 249 阅读 · 0 评论