
C#
C#
Live and learn 6688
OMTM:1 meaningful blog every workday╰(*°▽°*)╯
展开
-
编程常用快捷键
快捷键 功能介绍 Home 光标跳到当前行的最前位置 End 光标跳到当前行的最后位置 F5 刷新当前界面 PgUp 上翻页 PgDn 下翻页 Shift 按住shift键,光标经过的位置都会被选中 shift+Home:选中光标到当前行最前位置的内容 shift+End:选中光标到当前行...原创 2019-01-10 14:38:31 · 455 阅读 · 1 评论 -
JZ9 变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。示例1输入: 3返回值:4描述这是一道可以递归,记忆化递归,动态规划,递推思想的题目。知识点:递归,动态规划,递推难度:一星题解方法一: f(n) = 2*f(n-1)f(n)=f(n-1)+f(n-2)+……f(1)f(n-1)=f(n-2)+……f(1)则:f(n) - f(n-1) = f(n-1) => f(n) = 2*f(n-1)cl原创 2021-04-13 14:13:06 · 109 阅读 · 0 评论 -
选择排序
private static void SelectionSort(int[] list) { //每一次循环完成后得到的当前的最大元素都与第i位做交换 for (int i = 0; i < list.Length - 1; i++) { int min_index = i; //list中最小值的索引 for (int j = i + 1; j ...原创 2021-04-19 23:06:25 · 76 阅读 · 0 评论 -
冒泡排序
public static int[] popSort(int arr[]) { for (int i = 0; i < arr.Length - 1; i++) { for (int j = 0; j < arr.Length - 1 - i; j++) { if (arr[j] > arr[j + 1]) ...原创 2021-04-19 22:40:13 · 75 阅读 · 0 评论 -
二分查找(折半查找)
递归public static int BinarySearch(int[] arr, int low, int high, int key){ int mid = (low + high) / 2; if (low > high) { return -1; } if (arr[mid] == key) { return mid; } else if (arr[mid] > key) {原创 2021-04-19 22:23:17 · 69 阅读 · 0 评论 -
JZ49 把字符串转换成整数
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述: 输入一个字符串,包括数字字母符号,可以为空返回值描述: 如果是合法的数值表达则返回该数字,否则返回0示例1输入:"+2147483647"返回值:2147483647示例2输入: “1a33”返回值:0描述这是一篇针对初学者的题解。题解针对atoi()的实现,不限于本题。知识点:字符串,边界考察难度:二星题解方法一:int.Try原创 2021-04-15 22:50:49 · 84 阅读 · 0 评论 -
JZ12 数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。示例1输入: 2.00000,3返回值: 8.00000示例2输入: 2.10000,3返回值: 9.26100示例3输入: 2.00000,-2返回值: 0.25000说明: 2的-2次方等于1/4=0.25负指数幂:当幂的指数为负数时,称为“原创 2021-04-13 16:50:45 · 79 阅读 · 0 评论 -
JZ10 矩形覆盖
题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:示例1输入:4输出:5描述这是一道规律题。知识点:递归,记忆递归,动态规划,递推难度::一星题解涂掉最后一级矩阵的时候,可以选择使用横向完成,也可以使用竖向完成,横向涂剩下 n - 1 阶,竖向涂剩下 n - 2 阶。关注 n - 1 与 n - 2 时的涂法有几种,这就是斐波那契数列思想:和跳台原创 2021-04-13 16:25:23 · 100 阅读 · 0 评论 -
JZ58 对称的二叉树
题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。-示例1//输入{8,6,6,5,7,7,5}// 返回值true示例2//输入{8,6,9,5,7,7,5}// 返回值{8,6,9,5,7,7,5}题解思路一 把输入的树看成两个数,一个遍历左子树,另一个表来遍历右子树,然后逐一比较遍历结果。C#:class Solution{ pu原创 2021-03-09 16:52:28 · 137 阅读 · 1 评论 -
JZ67 剪绳子
题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)返回值描述:输出答案。示例1输入:8返回值:18题解class Solution {原创 2021-03-15 17:45:08 · 106 阅读 · 0 评论 -
JZ22 从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。示例1输入:{5,4,#,3,#,2,#,1}返回值:[5,4,3,2,1]描述这是一篇指针初学者的题解。知识点:二叉树,队列,树的层次遍历难度:一星题解题目抽象:给出一颗二叉树,按照从上到下,从左到右的顺序遍历节点。也就是从上到下一层一层的遍历。方法:层次遍历这道题就是一个模板题,对队列的使用。因为要满足先进先出的特性。初始化:一个队列queue<TreeNode*> q, 将root节点入队列q原创 2021-03-17 14:29:41 · 78 阅读 · 0 评论 -
JZ66 机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?示例1输入: 5,10,10返回值: 21 class Solution { /// <summary>原创 2021-03-15 10:49:46 · 234 阅读 · 0 评论 -
LINQ(语言集成查询)
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。 借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。 可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 LINQ 系列技术提供了针对对象 (LINQ to Objects)、关系数据库 (LINQ to S原创 2020-12-14 11:12:43 · 2434 阅读 · 0 评论 -
C# 语言和 .NET 简介
C# 是一种简洁精炼且类型安全的面向对象的语言。 开发人员利用 C# 能够生成在 .NET 生态系统中运行的多种安全可靠的应用程序。C# 语言C# 可提供强大的功能,例如可以为 null 的类型、委托、Lambda 表达式、模式匹配和安全直接内存访问。C# 支持泛型方法和类型,因此增强了类型安全性和性能。C# 可提供迭代器,使集合类的实现者可以定义客户端代码的自定义行为。语言集成查询 (LINQ) 表达式让强类型查询成为最高级的语言构造。作为面向对象的语言,C# 支持封装、继承和多态性这些概原创 2020-12-14 11:06:24 · 562 阅读 · 0 评论 -
C#一些重要的功能(待补充)
虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能.布尔条件(Boolean Conditions)自动垃圾回收(Automatic Garbage Collection)标准库(Standard Library)组件版本(Assembly Versioning)属性(Properties)和事件(Events)委托(Delegates)和事件管理(Events Management)易于使用的泛型(Gene原创 2020-12-14 10:57:33 · 240 阅读 · 0 评论 -
.NET、C#和ASP.NET三者之间的区别
一、什么是.NET?.NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb.net等等。JAVA和.NET不同的一点是java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和 iOS 苹果系统。1、.net框架的组成分为两部分:CLR:公共语言运行时(Common Language Runtime),提供内在管理,代码原创 2020-12-14 10:51:21 · 234 阅读 · 0 评论 -
Assets file ‘E:\*\*\*\obj\project.assets.json‘ not found.Run a NuGet package restore to generate
SeverityCodeDescriptionProjectFileLineSuppression StateErrorNETSDK1004Assets file ‘E:\DemoTest\Demo\Demo\obj\project.assets.json’ not found. Run a NuGet package restore to generate th...原创 2019-10-28 14:41:47 · 934 阅读 · 0 评论 -
Convert.ToDouble 与 Double.Parse 的区别
Convert.ToDouble 与 Double.Parse 较为类似Convert.ToDouble内部调用了Double.ParseDouble.ParseConvert.ToDouble参数为null的时抛出异常返回 0.0参数为""抛出异常抛出异常转换类型只能转换数字类型 的字符串可以转换的类型较多测试代码using Syst...转载 2018-10-07 22:01:46 · 2510 阅读 · 0 评论 -
Use '.Any()' to test whether this 'IEnumerable System.Data.DataRow ' is empty or not.
Use ‘.Any()’ to test whether this 'IEnumerable System.Data.DataRow ’ is empty or not.原创 2018-10-09 14:35:34 · 176 阅读 · 0 评论 -
C#:折叠一段代码(#region #endregion)
折叠一段代码用#region和#endregion。 #region test1 Console.WriteLine("hello w rokd"); Console.WriteLine("te st"); Console.ReadKey(); #endregion 折叠效...原创 2019-01-10 13:52:34 · 1772 阅读 · 0 评论 -
.Net 和Java开发平台的区别
.NET Framework:提供函数、类库。.Net:是一种多语言的单一平台,可以使用多达几十种语言进行开发。 百度百科JAVA:单一语言多开发平台,优点是可以跨平台开发,如window、手机、Linux等。...原创 2019-01-10 14:57:47 · 2561 阅读 · 0 评论 -
MSIL:微软中间语言——.Net语言无关性
MSIL是一种通用的中间语言,类似于现在国际使用的英语,实现语言无关性。各编程语言,如C#、Javad,通过编译器翻译成MSIL。 MSIL是将.NET代码转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令。当执行这些指令时,实时(JIT)编译...原创 2019-01-10 15:53:54 · 888 阅读 · 0 评论 -
C#:快速输入Console.WriteLine();
在visual studio中输入cw,两次按Tab键,自动补全原创 2019-01-10 16:45:51 · 3896 阅读 · 3 评论 -
C#:内存和硬盘的区别
硬盘: 内存:存储正在运行的数据。RAM:随机存储器,断电后数据丢失。 虚拟内存: int i=10; 理解:开辟一个名为i的空间,并把10这个值放到这个空间当中。...原创 2019-01-10 16:53:26 · 311 阅读 · 0 评论 -
C#:变量类型字节
1字节 == 8位;类型 描述 字节数 范围 默认值 bool 布尔值 True 或 False False byte 8 位无符号整数 1 0 到 255 0 char 16 位 Unicode 字符 2 U +0000 到 U +ffff '\0' deci...原创 2019-01-10 17:36:55 · 730 阅读 · 0 评论 -
C#: Read and write
在这里插入代码片```和字符串 switch(exp) //exp为控制表达式可以是整数(包括字符和枚举)和字符串 { case exp1:statement_1;break; // ex...原创 2019-10-09 11:05:22 · 217 阅读 · 0 评论 -
枚举
枚举类型(也称为枚举)提供了一种有效的方式来定义可能分配给变量的一组已命名整数常量。该类型使用enum关键字声明。enum weekDay{ Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}默认情况下枚举中每个元素的基本类型都是int。可以使用冒号指定另一种整数类型。...原创 2019-10-10 10:25:54 · 152 阅读 · 0 评论 -
值类型和引用类型的区别
原创 2019-10-10 10:20:10 · 77 阅读 · 0 评论 -
第4章 类和对象
4.1 成员概述4.1.1 成员的种类类和结构都是复合类型, 他们可以包含数据成员、函数成员和嵌套成员1. 数据成员数据成员指字段,在类型定义时可以指定字段的初始值。如果类型的定义中没有指定字符串的初始值, 使用对象时也没有给字段赋值,那么字段将会被赋予其类型的默认值。类型默认值整形(包括字符和枚举)和实数类型0(2) 字段只有在创建对象时才会分配实...原创 2019-10-10 10:51:20 · 117 阅读 · 0 评论