c# .Net
LiCcCcCcccCcc
己所不欲勿施于人
展开
-
c# using的用法
using指令:引入命名空间这是最常见的用法,例如:using System;using Namespace1.SubNameSpace;using static 指令:指定无需指定类型名称即可访问其静态成员的类型using static System.Math;var = PI; // 直接使用System.Math.PI起别名using Project = PC.MyCompany.Project;using语句:将实例与代码绑定using (Font font3.原创 2022-05-17 09:46:09 · 1584 阅读 · 0 评论 -
c# 接口
1.接口的特点接口的定义是指定一组函数成员而不实现成员的引用类型,其它类型和接口可以继承接口。定义还是很好理解的,但是没有反映特点,接口主要有以下特点: (1)通过接口可以实现多重继承, C# 接口的成员不能有 public、protected、internal、private 等修饰符。 原因很简单,接口里面的方法都需要由外面接口实现去实现方法体, 那么其修饰符必然是 public。C# 接口中的成员默认是 public 的, java 中是可以加 public 的。 (2)接口成员不能有原创 2022-05-17 09:37:17 · 1629 阅读 · 0 评论 -
c# 抽象方法和虚方法的区别
1.虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。2.抽象方法只能在抽象类中声明,虚方法不是。如果类包含抽象方法,那么该类也是抽象的,也必须声明类是抽象的。3.抽象方法必须在派生类中重写,这一点和接口类似,虚方法不需要再派生类中重写。简单说,抽象方法是需要子类去实现的。虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求。抽象方法和虚方法都可以供派生类重写。...原创 2022-05-16 15:26:15 · 1723 阅读 · 0 评论 -
c# virtual 和 abstract
virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。 1.virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号), 而abstract修饰的方法一定不能实现。 2.virtual可以被子类重写,而abstract必须被子类重写。 3.如果类成员被abstract修饰,则该类前必须添加abstract, 因为只有抽象类才可以有抽象方法。 4.无法创建abstract类的实例,只能被继承无法实例化。重载和重写重载(overload)是提供了一种机制,原创 2022-05-16 15:24:50 · 1713 阅读 · 0 评论 -
C# 多态性
多态:一个接口多个功能。静态多态性:编译时发生函数响应(调用);动态多态性:运行时发生函数响应。静态绑定(早期绑定):编译时函数和对象的连接机制。 两种技术实现静态多态性:函数重载/运算符重载。函数重载:在同一范围内对相同函数名有多个定义,可以是参数类型或参数个数的不同,但不许只有返回值类型不同。运算符重载:关键字 abstract 声明抽象类:用于接口部分类的实现(派生类继承抽象类时,实现完成)。抽象类包含抽象方法,抽象方法可被派生类实现。抽象类规则:1.不能创建原创 2022-05-16 15:22:02 · 191 阅读 · 0 评论 -
c# static
我们可以使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。关键字 static 意味着类中只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。你也可以在类的定义内部初始化静态变量。将类成员函数声明为public static无需实例化即可调用类成员函数反之,如果不声明为static,即使和Main方法从属于同一个类,也原创 2022-05-12 13:40:59 · 176 阅读 · 0 评论 -
c# 枚举
枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0。但是,你也可以自定义每个符号的值:using System;namespace EnumApplication{ class EnumProgram { enum Days { Mon=71, tue=61, Wed=51, thu=41,原创 2022-05-12 11:35:50 · 103 阅读 · 0 评论 -
c# 类与结构体的区别
1、结构体中声明的字段无法赋予初值,类可以:struct test001{ private int aa = 1;}执行以上代码将出现“结构中不能实例属性或字段初始值设定”的报错,而类中无此限制,代码如下:class test002{ private int aa = 1;}2、结构体的构造函数中,必须为结构体所有字段赋值,类的构造函数无此限制:补充:类与结构的选择首先明确,类的对象是存储在堆空间中,结构存储在栈中。堆空间大,但访问速度较慢,栈空间小,访问速度相对更快原创 2022-05-11 09:27:06 · 155 阅读 · 0 评论 -
c# String 类的方法
String 类有许多方法用于 string 对象的操作。下面的表格提供了一些最常用的方法:序号方法名称 & 描述1public static int Compare( string strA, string strB )比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。2public static int Compare( string strA, string strB, bool ignoreCase )比较两个原创 2022-05-10 14:31:40 · 485 阅读 · 0 评论 -
c# 关于装箱和拆箱
装箱:值类型转换为对象类型, 实例:int val = 8;object obj = val;//整型数据转换为了对象类型(装箱)拆箱:之前由值类型转换而来的对象类型再转回值类型, 实例:int val = 8;object obj = val;//先装箱int nval = (int)obj;//再拆箱只有装过箱的数据才能拆箱一般初级面试可能会问到...原创 2022-05-10 14:18:43 · 124 阅读 · 0 评论 -
C# 中 String 跟 string 的区别
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色) C# string 映射为 .net Framework 的String 如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。如果使用 C#,建议使用 string,比较符合规范 string 始终代表 System.String(1.x) 或 ::System.String(2.0) ,String 只有在前面有 us原创 2022-05-10 14:17:01 · 660 阅读 · 0 评论 -
c# 静态常量与动态常量
1.静态常量(编译时常量)const在编译时就确定了值,必须在声明时就进行初始化且之后不能进行更改,可在类和方法中定义。定义方法如下:const double a=3.14;// 正确声明常量的方法const int b; // 错误,没有初始化2.动态常量(运行时常量)readonly在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。定义方法如下:class Program{ readonly int a=1; // 声明时初始化 reado原创 2022-05-10 14:13:18 · 908 阅读 · 0 评论 -
c# 移位运算<<(左移) 和 >>(右移)
C# 是用 <<(左移) 和 >>(右移) 运算符是用来执行移位运算。左移 (<<):将第一个操作数向左移动第二个操作数指定的位数,空出的位置补 0。左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8。x<<1= x*2x<<2= x*4x<<3= x*8x<<4= x*16同理, 右移即相反:右移 (>>):将第一个操作数向右移动第二个操作数所指定的位数,空出的位置补原创 2022-05-10 14:09:55 · 3979 阅读 · 2 评论 -
c# 阶乘的递归算法
下面是阶乘的递归算法,其中判断条件如果 num>0 则返回 num *Jc(num - 1),否则返回 1。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace jiecheng{ class jiecheng { public int Jc(int num)原创 2022-05-10 14:07:03 · 566 阅读 · 0 评论 -
c# 访问修饰符的理解
c# 访问修饰符有:1.public:所有对象都可以访问;2.private:对象本身在对象内部可以访问;3.protected:只有该类对象及其子类对象可以访问4.internal:同一个程序集的对象可以访问;5.protected internal:访问限于当前程序集或派生自包含类的类型。比如说:一个人A为父类,他的儿子B,妻子C,私生子D(注:D不在他家里)如果我们给A的事情增加修饰符: public事件,地球人都知道,全公开 protected事件,A,B,D知道(A和他的所有原创 2022-05-10 14:05:35 · 179 阅读 · 0 评论 -
c# 可空类型(Nullable) 双问号的理解
?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值。?? 可以理解为三元运算符的简化形式:num3 = num1 ?? 5.34;num3 = (num1 == null) ? 5.34 : num1;C# 中两个问号的作用是判断??左边的对象是否为 null,如果不为 null 则使用 ?? 左边的对象,如果为 null 则使用 ?? 右边的对象。num3 = num1 ?? 5.34; // num1 如果为空值则返回 5.34Console.WriteLine(原创 2022-05-10 14:03:23 · 428 阅读 · 0 评论 -
C# string.Format格式化日期
DateTime dt = new DateTime(2017,4,1,13,16,32,108);string.Format("{0:y yy yyy yyyy}",dt); //17 17 2017 2017string.Format("{0:M MM MMM MMMM}", dt);//4 04 四月 四月string.Format("{0:d dd ddd dddd}", dt);//1 01 周六 星期六string.Format("{0:t tt}", dt);//下 下午stri原创 2022-05-10 13:57:28 · 220 阅读 · 0 评论 -
判断文件夹是否存在 不存在新建一个
先明确一个路径 string fileeXistence = @"D:\test"; if (!Directory.Exists(fileeXistence)) { Directory.CreateDirectory(fileeXistence); }原创 2022-04-20 16:52:05 · 177 阅读 · 0 评论 -
c#正则匹配非法字符
正则匹配非法字符原创 2022-03-15 09:20:29 · 344 阅读 · 0 评论 -
winform 点击取消时关闭窗体并提示
public void button2_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("您确认关闭当前窗口吗?", "操作提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { .原创 2022-03-15 09:10:59 · 601 阅读 · 0 评论 -
winform 加密 解密
public string EncryptString(string str) { #region 加密程序 char[] Base64Code = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', '转载 2022-03-15 09:07:10 · 624 阅读 · 0 评论 -
C#如何清空多个textbox的中的文本
C#如何清空多个textbox的中的文本原创 2022-03-15 09:03:55 · 1390 阅读 · 0 评论 -
wiinform 读取文件并写入list
List<string> lis = new List<string>(); public void ReadTxtContent(string Path) { StreamReader sr = new StreamReader(Path, Encoding.Default); string content; while ((content = sr.ReadLine原创 2022-03-15 09:01:22 · 155 阅读 · 0 评论 -
DayOfYear 一年中的第几天
public static void Main(string[] args) { var a = "2019-01-09"; DayOfYear(a); Console.WriteLine(); Console.ReadKey(); } public static int DayOfYear(string date) { ..原创 2021-12-21 13:40:11 · 268 阅读 · 0 评论 -
Leetcode 面试题 16.06. 最小差 c#
给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差示例:输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}输出:3,即数值对(11, 8)提示:1 <= a.length, b.length <= 100000-2147483648 <= a[i], b[i] <= 2147483647正确结果在区间 [0, 2147483647] 内 public static int Smalles原创 2021-11-17 15:20:37 · 353 阅读 · 0 评论 -
C#中 删除掉字符串数组中的空字符串
a (字符串数组)= a.Where(s => !string.IsNullOrEmpty(s)).ToArray();原创 2021-11-12 15:54:38 · 589 阅读 · 0 评论 -
Directory.CreateDirectory();创建多级文件夹
原创在这个连接using System;using System.IO;namespace ConsoleApp{ class Program { static void Main(string[] args) { // 如果文件夹已经存在,那么就不创建。 //创建一级文件 Directory.CreateDirectory(@"VS创建的文件夹");转载 2021-11-02 15:31:03 · 2458 阅读 · 0 评论 -
Directory.Delete();删除文件夹
public static void Delete( string path, bool recursive)delete 删除文件夹时有两个函数,一个是直接加路径的,还有一个就是两个参数的path:路径recursive:是否删除目标文件夹中的子文件夹及子文件。所以,这种报错的,只要将第二个参数设置为TRUE就可以了,不过有的时候要分情况检查是不是文件夹下所有的文件都需要删除,这时候就要用到递归的方法,边判断边删除了if (Directory.Exists("路径"))原创 2021-11-02 15:24:50 · 1644 阅读 · 0 评论 -
Directory.Exists ();判断指定的文件夹是否存在
string dirPath = @“E:\CSharpDevelop\ConsoleApp”; if (Directory.Exists(dirPath)) { Console.WriteLine("文件夹存在"); } else { Console.WriteLine("文件夹不存在"); }原文...转载 2021-11-02 15:19:24 · 3275 阅读 · 0 评论 -
String.Join();方法
string里边的Join()方法public static string Join(string separator,string [] value)连接一个字符串数组中的所有元素,使用指定的分割符分割每个元素public static string Join(string separator,string [] value,int startIndex ,int count)连接一个字符串数组中的指定位置开始的指定元素,使用指定的分割符分割每个元素就是将传入的字符串数组(必须是字符串st原创 2021-11-01 09:56:56 · 1593 阅读 · 0 评论 -
C#开根号函数:math.pow()函数
头文件:#include <math.h>pow() 函数用来求 x 的 y 次幂(次方),其原型为:double pow(double x, double y);pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = x y。可能导致错误的情况:如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error 错误。如果底数 x 和指数 y 都是 0,可能会导致 domain error 错误,也可能没有;这跟库的实现有关。如转载 2021-10-28 17:41:49 · 9933 阅读 · 0 评论 -
数组的 Intersect 交集,Except 差集,Union 并集
Intersect 交集,Except 差集,Union 并集int[] oldArray = { 1, 2, 3, 4, 5 };int[] newArray = { 2, 4, 5, 7, 8, 9 };var jiaoJi = oldArray.Intersect(newArray).ToList();//2,4,5var oldChaJi = oldArray.Except(newArray).ToList();//1,3var newChaJi = newArray.Except(old转载 2021-10-28 11:42:00 · 175 阅读 · 0 评论 -
C# 合并两个数组总结
byte[] b1 = new byte[] { 1, 2, 3, 4, 5 }; byte[] b2 = new byte[] { 6, 7, 8, 9 }; byte[] b3 = new byte[b1.Length + b2.Length]; char[] b4 = new char[] { '1', '2', '3', '4', '5' }; char[] b5 = new char[] { '6',转载 2021-10-28 11:16:50 · 3120 阅读 · 0 评论 -
判断两个字符串所构成的字符是否相等(不按顺序) 242. 有效的字母异位词
string s = "anagram", t = "nagaram"; public static bool IsAnagram(string s, string t) { int m = s.Length, n = t.Length; if (m != n) return false; int[] sCnt = new int[26]; for (int i = 0; i < ..原创 2021-10-27 18:09:03 · 184 阅读 · 0 评论 -
循环获取字典的键或者值
Dictionary<string,string> dic=new Dictionary<>(string,string); List<string> li=new List<string>(dic.Keys); 然后就可以循环这个li了,里面就是存储的字典的键 dic.Value 就是字典的值 for (int j = 0; j < li.Count; j++) { li[j]就是每一个要取的 键/值原创 2021-09-28 17:31:39 · 867 阅读 · 0 评论 -
别人写好的dll调用 c#
1.在vs里引用 右键 添加引用2,点击浏览选项3.把别人写好的dll 复制为路径4.把路径粘贴进去点击添加即可(添加完成后就跟调其它方法一样,看清楚 写好的dll里的参数就可以了)原创 2021-09-24 13:07:40 · 357 阅读 · 0 评论 -
Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 c#
今天上线看见了新的版块,应该是学习计划之类的,打开了一个第一天是二分查找类型给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], ta原创 2021-09-06 11:40:06 · 291 阅读 · 0 评论 -
Leetcode 1689. 十-二进制数的最少数目 c#
题目:如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。示例 1:输入:n = “32”输出:3解释:10 + 11 + 11 = 32示例 2:输入:n = “82734”输出:8示例 3:输入:n = “27346209830709182346”输出:9反正我是原创 2021-08-18 11:48:24 · 145 阅读 · 0 评论 -
Leetcode 剑指 Offer 17. 打印从1到最大的n位数 c#
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]今天学的第二个知识点Math.Pow()是Math类方法。此方法用于计算将数字提高到其他数字的乘方。 public int[] PrintNumbers(int n) { int end = (int)Math.Pow(10, n) - 1;原创 2021-08-17 11:38:47 · 147 阅读 · 0 评论 -
Leetcode 1455. 检查单词是否为句中其他单词的前缀 c#
给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。字符串 S 的 前原创 2021-08-17 11:22:27 · 233 阅读 · 0 评论