
c#
@红@旗下的小兵
求知若渴 虚心若愚
展开
-
c# - FileStream、StreamReader、StreamWriter
先看下File和FileStream的区别:File在读取文件时,是一下子全部读取出来;FileStream在读取文件时,是一点一点的读取的,对于内存来说,压力更小一些;FileSteam 读取数据:操作字节的(意味着所有的文件格式都可以操作,可操作大文件,小文件的操作一般使用File)1、创建FileStream// 创建// 参数一:指定文件路径// 参数二:FileMode 是一个枚举类,指定操作系统打开文件的方式(针对文件做的操作)// 参数三:FileAcce.原创 2020-10-19 21:02:19 · 920 阅读 · 0 评论 -
c# - Dictionary字典小练习
1、统计每个字符串出现的次数:此题主要用了字典中的key唯一性,把字符串字符当做字典中的key,值为1,可以看做字符串中出现的次数每次循环字符串判断当前字符是否在字典中有相同的key, 有的话,取到对应的值 加一次,没有的话,设置初始值为1。//统计 每个字符出现的次数,不考虑大小写string str = "welcome to chinaooo";Dictionary<char, int> dic = new Dictionary<char, int>();f原创 2020-10-18 16:14:26 · 467 阅读 · 0 评论 -
c# - 字典类型Dictionary
键值对集合(类似Hashtable)创建Dictionary字典类型: Dictionary<string, int> dic = new Dictionary<string, int>();方法1、添加dic.Add()dic["name"] = 12、遍历Dictionarystatic void Main(string[] args){ Dictionary<string, int> dic = new Dictio..原创 2020-10-17 21:32:13 · 1535 阅读 · 0 评论 -
c# - 装箱和拆箱
装箱和拆箱:把值类型转换为引用类型 -> 装箱把引用类型转换为值类型 -> 拆箱static void Main(string[] args){ int num = 1; object obj = num; // 装箱操作 - 把值类型转换为引用类型 int n = (int)obj; // 拆箱操作}装箱和拆箱操作对性能影响非常大,应减少此类操作:下边是1千万次循环,每次循环向ArrayList中添加一个int类型元素,在添加时,发...原创 2020-10-17 20:51:22 · 216 阅读 · 0 评论 -
c# - 泛型集合
创建泛型集合对象:泛型集合类型一旦确定,那么里边的元素类型也随之确定(它与数组类似)static void Main(string[] args){ // 创建一个整数泛型集合 List<int> num = new List<int>();}向泛型集合添加元素:static void Main(string[] args){ // 创建一个整数泛型集合 List<int> num = new List<.原创 2020-10-15 21:21:33 · 700 阅读 · 0 评论 -
c# - File类(写入文件)
1、File.WriteAllBytes(string path, content)创建一个新文件,写入指定的字节数组,与FileReadAllBytes() 相反,如果目标文件已经存在,则会覆盖目标文件。// System.Text.Encoding.UTF8.GetBytes(content) 把字符串转字节数组static void Main(string[] args){ string content = "这是一段测试文字"; byte[] conBytes =...原创 2020-10-15 20:52:48 · 6524 阅读 · 0 评论 -
c# - 编码
什么是编码:文本文件编码,文本文件有不同的存储方式,将字符串以什么样的形式保存为二进制,这就是编码。1、常见的编码格式:UTF-8(针对web的编码格式)、ASCLL、Unicode(基本包含了所有国家语言),gbk、gb2312(简体字)等等2、乱码:在平时开发中,经常会产生乱码,原因因为:保存这个文件所采用的的编码格式,跟你打开这个文件所采用的的编码格式不一样所导致的。...原创 2020-10-14 20:45:00 · 636 阅读 · 0 评论 -
c# - File类(读取文件)
File类下图是File类所在的命名空间;且从下边可看出File类是一个静态类。File静态类的方法(1)File.Create( string path)在指定路径中创建或覆盖一个文件(注意:如果指定路径下已经有此文件,那么原有的会被覆盖)static void Main(string[] args){ File.Create(@"C:\Users\Administrator\Desktop\1.txt");}(2)File.Delete( str..原创 2020-10-14 19:53:18 · 13003 阅读 · 0 评论 -
c# - Path类
Path类的使用及方法:1、GetFileName( )快速获取一个文件路径下的文件名和扩展名, 返回字符串类型的文件名.扩展名static void Main(string[] args){ //隶属于 namespace System.IO 命名空间下 // 源码中Path类是一个静态类,所以不能创建对象, string path = @"E:\ai\dll\index.dll"; string res = Path.GetFileName(pat...原创 2020-10-13 19:43:54 · 422 阅读 · 0 评论 -
c# - Hashtable
键值对集合(跟js中的对象类似)对象创建 :Hashtable 及使用 Add方法 向 Hashtable 添加键值对namespace ConsoleApp6{ class Program { static void Main(string[] args) { Hashtable obj = new Hashtable(); obj.Add("name", "lxc");原创 2020-10-12 21:12:25 · 311 阅读 · 0 评论 -
c# 集合ArrayList
ArrayList很多数据的集合创建:class Program{ static void Main(string[] args) { //ArrayList这个类是在System.Collections命名空间下 ,所以需要using 导入 ArrayList list = new ArrayList(); int[] arr = { 1, 2, 3 }; list.Add(1); list..原创 2020-10-10 19:41:14 · 630 阅读 · 0 评论 -
c#面向对象-关键字new
new关键字:(1)创建对象;(2)隐藏从父类哪里继承过来的同名成员(就是子类调用不了父类成员);下边在子类和父类中写了同样的方法,调用子类实例时,只能调用到子类中的方法,而父类中的方法调用不到,而且此时在编辑器中子类方法报了一个警告:意思是:如果是固定这样做的,那么需要在子类方法前加上new 关键字。namespace ConsoleApp6{ class Program { static void Main(string[] args).原创 2020-10-08 19:10:11 · 357 阅读 · 0 评论 -
c#面向对象- 继承
概念:个人理解:在一些类中,写一些重复成员,我们可以将这些重复的成员,单独封装到一个类中,作为这些类的父类。最终目的:解决类与类之间的代码冗说明下:在实际开发中,会把不同的类写到类文件中去,这里是为了演示方便写到一起了。namespace ConsoleApp6{ class Program { static void Main(string[] args) { Son son = new Son();.原创 2020-10-07 20:59:55 · 410 阅读 · 0 评论 -
c# - 值类型和引用类型
值类型:int、char、double、decimal、bool、struct、enum。引用类型:字符串、数组、自定义类区别:(1)值类型和引用类型在内存上的存储地方不一样。(2)在传递类型和传递引用类型的时候,传递的方式不一样,值类型称之为值传递,引用类型称之为引用传递。值类型 -的值是存储在内存的栈当中。引用类型 -是存储在内存的堆当中的。...原创 2020-10-05 09:52:02 · 169 阅读 · 0 评论 -
c#面向对象- 命名空间
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录命名空间命名空间可以认为,类是属于命名空间的,如果在当前项目中,没有这个类的命名空间,需要我们手动的导入这个类的命名空间。二、使用步骤1.引入库代码如下(示例):import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnin.原创 2020-10-05 09:18:01 · 258 阅读 · 0 评论 -
c#面向对象- 构造函数
现在在一个类中,又增加了一个新的成员,构造函数,其它换可以有:字段、属性、方法。构造函数:作用:帮助我们,初始化对象(给对象的属性一次赋值),这样做更快捷、方便。构造函数是一个特殊的方法:(1)** 构造函数没有返回值,连void也不能写;(2)** 构造函数的名称必须跟类名一样;(3)** 通常会在构造函数中,初始化对象,括号中可写参数(与js 中ES6的类类似,new 类时,会执行constructor,括号中也可以接受参数,且可以有默认值)使用:namespac.原创 2020-10-04 22:22:16 · 269 阅读 · 0 评论 -
c#面向对象- 静态成员和非静态成员的区别
文章目录静态和非静态区别静态和非静态使用提示:(1)加上static就是静态成员,不加就是非静态成员。(2)在一个类中,既可以有静态成员,也可以有非静态资源。(3)在调用实例成员时,需要使用对象名(实例).实例中的成员。(4)在调用静态成员的时候,需要使用类名.静态成员的名字。class Person{ // 在别的文件调用此方法时: // Person m = new Person; // m.M(); public void M..原创 2020-10-04 21:59:55 · 2327 阅读 · 0 评论 -
c#面向对象- 类的属性
属性:作用: 就是保护字段,对字段的赋值和取值进行限定。属性的本质:就是一个两个方法,一个get(取值)和set(赋值)与js中的Object.defineProperty类似。class Person{ // public string _name; public char _sex; public int _age; public void SEE() { Console.WriteLine($"我叫{ this原创 2020-10-04 20:54:26 · 396 阅读 · 0 评论 -
c#面向对象- 类的语法及创建、实例化、访问修饰符
类:就是一个模子,对象是根据类创建出来的。一个形象的比喻:类就是一个盖大楼的图纸,对象就是盖出来的大楼。语法:[public] class 类名{ // 字段; // 属性; // 方法;}如何在项目中创建一个类:在开发中,通常会把类单独写一个文件:在项目文件上右键 ——> 添加 ——> 新建项 ——>选择类或在项目文件上右键 ——> 添加 ——> 在下边直接选择 类此时,此时会自动生成一个文件,然后根据原创 2020-10-03 21:46:49 · 1108 阅读 · 0 评论 -
c# 方法小练习
1、求任意两个整数之间的所有整数的和:先说下我的思路:首选我做了一个判断,变量交换,保证了参数一比参数二小,把最小值赋值给一个总和变量,方便累加,每次循环都让总和变量+最小值+索引。static void Main(){ GetSum(5, 0);}public static void GetSum(int a, int b){ if(a > b) { int temp; temp = a; a = b;原创 2020-09-29 22:27:05 · 698 阅读 · 0 评论 -
c#方法重载
先来看一段代码:static void Main(){ M1(1, 2);}public static int M1(int a, int b){ return a + b;}public static int M1(int a, int b, int c){ return a + b + c;}public static string M1(string a, string b){ return a + b;}public static str原创 2020-09-29 21:13:21 · 880 阅读 · 0 评论 -
c#三个高级参数之一 params参数
先看一个例子:static void Main(){ int[] arr = { 1, 2, 3, 4 }; CetSum(arr);}public static void CetSum(int[] arr){ int sum = 0; for(int i = 0; i < arr.Length; i ++) { sum += arr[i]; } Console.WriteLine($"数组值的总和为:{sum}")原创 2020-09-29 20:43:37 · 527 阅读 · 0 评论 -
c#三个高级参数之一 ref参数
先来看一个很简单的小李子:static void Main(){ int r = 10; int res = GetInt(r); Console.WriteLine(res); // 20 Console.ReadLine();}public static int GetInt(int a){ return a += a;}上边通过一个方法,来处理a参数,最后把返回的结果打印出来。非常简单的例子,如果我们不想写返回值,且不需要接受一个返回值,有没原创 2020-09-28 15:56:18 · 1733 阅读 · 0 评论 -
c#三个高级参数之一 out
先来一个小案例:求最大值、最小值、总和、平均值static void Main(){ int[] arr = { 1, 2, 3, 4, 5 }; int[] res = GetSumAgMaxMin(arr); Console.WriteLine($"最大值为:{res[0]},最小值为:{res[1]},总和为:{res[2]},平均值为:{res[3]}"); Console.ReadLine(); }/// <summa...原创 2020-09-28 15:25:56 · 469 阅读 · 0 评论 -
c# 手写TryParse
先了解下 TryParse ( <string>,out <int> )用法:TryParse(<string>,out <int> ):参数一:需要转换的字符串参数二:out是多余返回的参数,是int整数类型,当转换成功时,此参数就是转换的结果,转换失败时,此参数为0。举个栗子:static void Main(){ // 将字符串转换为int类型 int num; bool res = int.TryP.原创 2020-09-27 21:09:00 · 619 阅读 · 0 评论 -
c#对字符串的处理(全面)
c#中较常用的字符串处理技巧:《c#入门经典》:(1)string类型的变量可以看成char变量的只读数组,所以访问字符串中的每个字符,可以这样访问:string str = "abc";char r = str[0];(2)访问一个字符串中的某一个字符时,变量类型是 字符(char)类型:static void Main(string[] args){ string str = "abc"; char r = str[0]; Console.WriteL原创 2020-09-27 10:33:43 · 5380 阅读 · 0 评论 -
c#方法(函数)
语法:public : 访问修饰符,公开的,那都可以访问;static:静态的;返回值类型:如果不需要返回值,写viod;方法名:每个单词字母大写;参数列表:可省略,注意参数前边也必须要带上参数的类型。[ public ] static 返回值类型 方法名([参数列表]){方法体;}如:1、求最大值:class Hello{ static void Main() { } public...原创 2020-09-26 19:58:57 · 977 阅读 · 0 评论 -
c#数组
可一次性存储多个相同类型的变量,(这里区别于结构,它是一次性存储多个不同类型的变量)语法:数组类型[ ] 数组名 = new 数组类型[ 数组长度 ]当声明了一个数组,其原理如下:(右图从9到0是数组的索引)注意:(1)如果数组的长度一旦固定,程序运行中不能修改;(2)对于int类型的数组,默认的初始值都为0 对于string类型的数组,默认初始值都为null(null是没有在内存空间中) 对于bool类型的数组...原创 2020-09-23 20:46:10 · 492 阅读 · 0 评论 -
c#结构
结构可以帮助我们一次性声明多个不同类型的变量语法:[ public ] struct 结构名{_成员; // 通常称为字段··· ···}定义的位置:与枚举类型enum一样,通常定义在命名空间下方,类的上方:如:下边小练习中,把结构与枚举相结合,在结构中,通过枚举来定义性别:namespace day_1{ //定义枚举 public enum Sex { fameil, meil } //.原创 2020-09-23 20:02:37 · 539 阅读 · 0 评论 -
c#枚举和int以及string类型之间的转换
枚举转int类型:枚举类型默认可以跟int类型互相转换,枚举类型跟int类型是兼容的。默认会输出当前枚举值所在的索引,从0开始:namespace day_1{ public enum Person { name, sex, height, weight, address } class Hello { static void Main()原创 2020-09-22 21:32:57 · 3390 阅读 · 0 评论 -
c#枚举类型
格式:[public] enum 枚举名(自定义的){值1,值2,值3··· ···}[ public ]:访问修饰符,公开的,哪都可以访问,可写可不写。enum:关键字,声明枚举的关键字枚举名:一般大驼峰首字母大写,我们定义的枚举名就是一个自定义的类型。取值:枚举名 变量名 = 枚举名.花括号中定义的值注意:(1)不能再Main函数中声明枚举(2)枚举声明一般放在命名空间的下边,类的上边,这样这个命名空间下所有类都可以用到举个栗子:n...原创 2020-09-22 20:34:20 · 358 阅读 · 0 评论 -
c# 运算符
自增自减运算符:分析下边代码:n1 ++相当于先把n1的值赋值给res1,之后n1 ++ ,n1结果为3,然后执行 ++n1,相当于++3,res2结果为4,所以最后打印结果:res1为2,res2为4。namespace ConsoleApp3{ class Program { static void Main(string[] args) { int n1 = 2; int res...原创 2020-08-24 19:55:53 · 303 阅读 · 0 评论 -
c#变量及数据类型全解析
为什么要使用变量:计算机使用内存来记忆计算时所使用的数据,所以内存存储数据时:要先根据数据的需求(即类型)为它申请一块合适的空间,存储数据,采用二进制的方式存储数据(010101··· ···),而变量就是内存地址的引用,形象的说:可通过内存中房间的别名(就是变量)找到数据存储的位置。如何变量声明:// 变量类型 变量名 = 数值;int money = 100;int money;money = 100;// 也可以连续声明int money1, money..原创 2020-08-24 16:06:48 · 1747 阅读 · 0 评论 -
初探c#
c#开发项目时,最常见的3种项目类型分别是:控制台应用程序、Windows窗体应用程序、ASPNET网站应用程序。(1)控制台应用程序:是没有独立的窗口的程序,一般在命令行运行,其输入输出通过标准的IO进行;(2)Windows窗体应用程序:在计算机上运行的客户端应用程序,可以显示信息、请求用户信息,以及通过网络与远程计算机进行通信,如:QQ。(3)ASPNET网站应用程序:就是网站。什么是命名空间:命名空间 c# 程序中的一种代码组织形式,主要用来标识类的可见范围。...原创 2020-08-23 17:44:32 · 431 阅读 · 0 评论