在.net4.5之后MS就推出了Task多线程,作为之前一直使用Thread和ThreadPool的开发者来说,Task显然更容易管理线程,虽然也够用,但还是要保持与时俱进嘛~Task使用的是线程池,耗时操作不易用在线程池中操作 Task task=new Task(()=>{xxx});task.Start(); //这是一种Task多线程构造方法,不会阻塞,是Action委托类型,用不到返回值Task<type> task=Task<type>.Run(()=>{带返回值func}); timerTxt.Text= task.Result.toString(); //如...
using System; namespace RectangleApplication {class Rectangle {// 成员变量double length;double width;public void Acceptdetails() {length = 4.5;width = 3.5;}public double GetArea() {return length * width;}public void Display() {Console.WriteLine("Length: {0}", length);Console.WriteLine("Width: {0}", width);Console.WriteLine("Area: {0}", GetArea());}}class ExecuteRectangle {static void Main(string[]...
yield语法糖是对一种复杂行为的简化,将一段代码简化为一种简单的形式。 案例一public static void Main() {foreach (var i in Fibonacci().Take(20)){Console.WriteLine(i);}Console.WriteLine("Hello World!"); }private static IEnumerable<int> Fibonacci() {int current = 1, next = 1;while (true){yield return current;next = current + (current = next);} }运算结果: 案例二static void Main(string[] args) {forea...
C#基础知识——数组第一章 C#基础知识——入门 第二章 C#基础知识——面向对象 第三章 C#基础知识——基础算法回顾以及字符串 第四章 c#基础知识——数组文章目录 C#基础知识——数组本章导论一、一维数组1.1 一维数组的定义1.2 数组的实例化1.3 初始化1.4 数组长度1.5 数组元素1.6访问所有元素1.7用foreach访问所有元素 二、数组相关的属性和方法三、数组的基本编程3.1 产生10个100以内的随机数存在数组里面3.2 求数组中偶数的数量...
一、泛型 * 必须先引用 using System.Collections.Generic; * new创建一个新的集合:List<数据类型> list = new List<数据类型>(); * 长度可变,数据类型单一 * ArrayList 包含很多方法,必须掌握: 二、字典 Dictionary * 是一种泛型。使用方法类似Hashtable,不同之处在于:类型是固定的 * 需首先引入 using System.Collections.Generic; * 创建一个新的Dictionary对象:Dictionary<int, string> dic = new Dic...
一、值类型和引用类型 1. 定义: 值类型: int/double/bool/char/decimal/struct/enum 引用类型: string、自定义类、数组 2. 区别: * 在内存上存储的地方不一样:值类型存储在栈中,引用类型存储在堆中 如下图所示:值类型int直接将值10储存在栈中。而引用类型string将值"123"存在堆中。但引用类型也会在栈中开辟空间,存的是string的地址0x001001 * 传递方式不同 二、字符串string深入学习 1. 当给字符串重新赋值之后...
一、 类的定义 我们把具有相同属性相同方法的对象进行进一步的封装,抽象出类这个概念。 类就是个模子,确定了对象应该有的属性和方法。 对象是根据类创建出来的。 二、语法: [public] class 类名{字段;属性;方法; } * 写好一个类后,需在class Program的main方法中创建类的对象, 给类赋值将其实例化格式:类名 对象名称 = new 类名() 例子: 三、静态方法和非静态方法 - 静态: * 含有关键字static * 静态成员都需...
基础进阶文件操作 文件操作类在 System.IO 命名空间中,包括 Driveinfo 类、Directory 类、Directoryinfo 类、File 类、Filelnfo 类、Path 类等。 DriveInfo 查看计算机驱动器信息主要包括查看磁盘的空间、磁盘的文件格式、磁盘的卷标等,在 C# 语言中这些操作可以通过 Driveinfo 类来实现。 Driveinfo 类是一个密封类,即不能被继承,其仅提供了一个构造方法,语法形式如下。Driveinfo(string driveName)其中,dirveName 参数是指...
栈(Stack)和堆(Heap) stack 和 heap 在 js 也是有 简单理解就是变量存在 ram 的关系 值类型存在 stack, 它是一层一层的, last in first out 的概念. heap 是用来存引用类型的. 然后 stack 存引用地址. 闭包算是例外, 它存在 heap c# 有一种叫装箱和拆箱 装箱是说值类型变成引用类型 var a = 5; object b = a; 大概是这样一个操作. 拆箱就是引用类型转成值类型 int value = (int)b; https://www.jianshu.com/p/e9626cb34c9b...
基础教程 C#概述 C#是微软公司推出的一种语法简洁、类型安全的面向对象的编程语言,开发人员可以通过它编写在.NET Framework上运行的各种安全可靠的应用程序。.NET 框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。其中C#是该平台上使用的编程语言之一,类似的还有Visual Basic.NET、Python、j#、Visual C++.NET等。 开发环境一般使用Visual Studio2019或Rider Sharp等集成开发环境。 class Program {stat...
1. decimal 类型的浮点数 decimal拥有比float更高的精度,最高能处理到小数点后面的28位 定义一个decimal类型的浮点数: decimal d = 12.30M; 2. 占位符 用 {Number} 作为占位符,直接上例子:输出结果: 第一个数字是: 10, 第二个数字是: 20, 第三个数字是: 30第一个数字是: 10, 第二个数字是: 20, 第三个数字是: 30 注意:结果按照占位符{ }内的数字顺序输出,例如上例中{}数字顺序更改,则结果也会改变:输出结果: 第一个数字...
对程序结构、命名空间标识符及编程规范的认识 对新建控制台程序结构的概况如下 蓝色字符均为关键字,如果要在标识符中加关键字要在关键字前加@对于编程的规范我总结了以下几条: 每一条源代码也就是语句要以;结束在编写代码的过程中要使用半角字符的英文字符定义命名空间要以{开头}结束标识符首字符可以使用a-z、A-Z、、@不可以使用0-9后续字符可以使用a-z、A-Z、、0-9不可以使用@关键字和标识符不可以重复
目标:重新学习C#基础知识,重点通过阅读源码和分析运行机制着手。 基础 集合: 集合分类:可以分为非泛型集合和泛型集合,二者均间接实现了IEnumerble接口 非泛型集合:非泛型集合位于System.Collection命名空间,它可以存储多种类型的对象,其中在常用的是ArrayList集合和Hashtable集合。非泛型集合一般较少使用了。ArrayList可以容纳不同类型的对象,可以将int,string,object等类型对象同时加入到集合中 泛型集合:泛型集合...
1.进制与进制转换 进制:二、八、十六进制(计算机常用),十进制(生活常用)进制转换: 十进制转二(八、十六)进制:短除法 二(八、十六)进制转十进制:从低到高求和 2.原反补码3.数据类型 数据类型:就是计算机 ?于储存各种数据的结构 基本数据类型:引用数据类型: 4.标识符5.常变量6.代码注释
第十二天复习 namespace 复习 { class Program {static void Main(string[] args){/*Lisi<T>Dictionary<K,T>拆装箱装箱:值类型转为引用类型拆箱:引用类型转为值类型应该尽量避免在代码中发生文件流FileStream StreamReader和StreamWrite多态:虚方法、抽象类、接口虚方法抽象类*///List<int> list = new List<int>();//Dictionary<int, string> dic = new Dictionary<int, string>();//dic.Add(1, "张三");//dic[2] = "李四";//...