.Net C#
文章平均质量分 59
.NET 基本语法介绍
厦门德仔
分享与交流:信息化建设、数字化转型、项目管理、流程梳理与再造、前后端开发、财务管理、数据库、网络、家庭教育与人生感悟等希望我的博客能带您愉快心情。
展开
-
【LINQ】C# 中 foreach 循环获取索引的巧妙方法
虽然使用 LINQ 和元组可以方便地获取索引,但这可能会对性能产生一定影响,因为它们需要额外的计算来生成索引。在性能敏感的应用中,应该谨慎使用这些方法。LINQ(Language Integrated Query)提供了强大的数据处理能力,我们可以利用它来简化获取索引的过程。循环中优雅地获取元素及其索引,而不需要手动管理索引变量。在实际开发中,你可以根据具体需求选择合适的方法来实现。如果你不想创建一个扩展方法,可以直接在 LINQ 查询中使用索引。幸运的是,我们可以通过一些简单的技巧来解决这个问题。转载 2024-09-18 08:31:56 · 44 阅读 · 0 评论 -
【VS】尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost
其实也很简单,打开工程里面的csproj文件,找到UseIIS节点,和AutoAssignPort节点,将其改为False就好了。本来嘛,这也没啥,问题是当我们的电脑IP改变时,将会导致程序找不到原来的IP地址了,那么当然会报错啦。我们在Web项目的属性配置中勾选了“使用本地IIS Web服务器”;其实这不是权限不足造成的,而是网站的配置文件属性是“只读”造成的。IIS 网站添加默认文档时提示“由于权限不足而无法写入配置文件”在对网站添加默认文档时提示“由于权限不足而无法写入配置文件”。原创 2024-06-14 17:07:41 · 398 阅读 · 0 评论 -
[C#]在C#中对 JSON进行序列化和反序列化处理
使用 C# 🚀编程的 JSON 序列化和反序列化在 C# 编程的上下文中,执行 JSON 序列化和反序列化是在应用程序、Web Service 和数据库之间交换数据的常见任务。由掌握 C# 中的 JSON 序列化和反序列化,开发人员可以促进与 Web 服务、API 和数据库的无缝集成,从而简化跨不同平台和技术的数据传输和使用。在 C# 编程的上下文中,执行 JSON 序列化和反序列化是在应用程序、Web Service 和数据库之间交换数据的常见任务。使用 C# 🚀编程的 JSON 序列化和反序列化。转载 2024-05-09 11:09:38 · 369 阅读 · 0 评论 -
【C#】基于C#实现文本读取的7种方式
文本读取在上位机开发中经常会使用到,实现的方式也有很多种,今天跟大家分享一下C#实现读取读取的7种方式。以上7种方式主要是分别基于FileStream、File和StreamReader这三种来实现的,这三种方式的区别在于:FileStream类可以对任意类型的文件进行读取操作,而且我们也可以按照需要指定每一次读取字节长度,以此减少内存的消耗,提高读取效率。StreamReader的特点是,它只能对文本文件进行读写操作,可以一行一行的写入和读取。原创 2024-02-04 13:53:14 · 953 阅读 · 1 评论 -
【C#】自动更新
客户端程序更新,通常做法是做一个更新程序通过TCP/IP,HTTP,FTP协议指定路径,下载文件与本地文件进行比对。比对成功之后下载压缩包并解压替换本地程序。本文暂不比对版本,直接从FTP目录下载文件替换本地程序。lblMessage和progressBar。原创 2023-04-20 13:17:41 · 635 阅读 · 0 评论 -
【C#】获取C#当前程序所在目录的方法
/获取当前进程的完整路径,包含文件名(进程名)。结果:X:\xxx\xxx\xxx.exe(.exe文件所在的目录+.exe文件名)//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。结果:X:\xxx\xxx\xxx.exe(.exe文件所在的目录+.exe文件名)//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。结果:X:\xxx\xxx\xxx.exe(.exe文件所在的目录+.exe文件名)转载 2023-04-19 15:47:06 · 1372 阅读 · 0 评论 -
【C#】List.ForEach方法
在.net framework4 3.5 3.0 2.0这几个版本下,可以直接使用list.Remove(),但如果在使用Remove()后下一项是不会遍历到,会自动用下下项。所以,想删除list中的项,最好不用使用foreach和list.ForEach,而是使用for或list.RemoveAll。就是在id=2这项remove后还会对这项进行操作,但在进入下一项是id=4,而id=3这项没有遍历到。如果在遍历到某个特殊项的时候,不用遍历后面的项,需要break,这种情况使用foreach。原创 2023-03-31 08:57:29 · 7940 阅读 · 0 评论 -
【C#】如何给函数取一个好的名字
早在2013年,国外有个程序员做了一个有意思的投票统计(原始链接请见:《程序员:你认为最难做的事情是什么?一.常见的函数命名风格二.函数命名的最高境界三.函数命名最佳实践。转载 2023-02-28 13:47:50 · 413 阅读 · 0 评论 -
【C#】如何给变量取一个好的名字
讲一讲如何对变量命名。以下是本文的目录大纲:一. 变量命名风格二. 变量命名最高境界三. 变量命名最佳实践。原创 2023-02-28 13:36:16 · 1044 阅读 · 0 评论 -
[NetCore]ASP.NET Core 产生连续 Guid
1 前言1.1 这篇文章面向的读者本文不会过多解释 Guid 是什么,以及顺序 Guid 的作用,需要读者自行具备:知道 Guid,并且清楚其作用与优势清楚 Guid.NetGuid() 产生的 Guid 是混乱无序的,想要一种产生顺序 Guid 的算法来保证数据库的高效运行1.2 连续 Guid 的原理该 Guid 有16字节(byte)共128位(bit),可以包含时间戳,而顺序 Guid 主要是根据时间戳顺序来实现的,所以时间戳的部分,作为排序的决定性因素。转载 2022-11-26 08:15:22 · 915 阅读 · 0 评论 -
[EF]关于EF使用Contains关键字的问题
此处复习一下 CHARINDEX(str1,str2),函数返回子字符串str1在字符串str2中的开始位置eg:求用户姓名为 "p1,p2,p3,p4,x2,y4"的所有用户信息,已知字符串 string str = “p1,p2,p3,p4,x2,y4”;错误做法:直接用字符串contains用户的userName!!!这种写法是不友好的,不但查询慢,而且还有一个空字符串的情况,而且当userName=p 或者=x 的时候,也会被搜索出来,这个是不对,所以不要用!转载 2022-11-17 08:20:36 · 1742 阅读 · 0 评论 -
[C#]C# 中 IsNullOrEmpty 和 IsNullOrWhiteSpace 你用对了吗?
C#中判断字段是否为空或者Null的时候,我们一般会使用到IsNullOrEmpty和IsNullOrWhiteSpace方法,这两个方法在大部分情况下判断的结果是一致的,但是有些情况下是不一致的。你是否必须将所有 String.IsNullOrEmpty 替换为 String.IsNullOrWhiteSpace?是的,除非你有特定的原因将表中最后的三个值视为有效字符。...转载 2022-08-29 09:35:08 · 3259 阅读 · 0 评论 -
【C#】判断字符串中是否包含指定字符或字符串(Contains/IndexOf)
【C#】判断字符串中是否包含指定字符或字符串(Contains/IndexOf)转载 2022-07-29 08:25:13 · 5544 阅读 · 0 评论 -
【C#】说说 C# 9 新特性的实际运用
说说 C# 9 新特性的实际运用转载 2022-07-28 08:08:06 · 722 阅读 · 0 评论 -
【 C# 】字符串的处理方法(比较/截取/分割/替换等)
这里写自定义目录标题1.字符串的比较 Equals()可以把字符串看作一个字符char类型的数组,首先一般作比较前,需要对大小写进行转换。strUp = str.ToUpper();//字符串转换为大写strLow = str.ToLower();//字符串转换为小写也可以忽略大小写进行比较。 string str1 = "帅的被人砍的Nick"; string str2 = "Nick帅的被人砍"; if( str1.Equals(str2,Strin转载 2022-03-03 15:19:14 · 2070 阅读 · 0 评论 -
[C#]C#中static、const、readonly与static readonly的区别与联系
1、const修饰符初始化时机:编译时,即编译程序时将值已经嵌入代码中;值状态:不允许动态修改修饰范围:字段、局部变量主要应用场景:主要应用于程序运行中不需要改变的变量的值,比如数学符号PI;2、static修饰符初始化时机:运行时,可以声明时赋值,也可以在构造函数,或使用时赋值值状态:允许修改修饰范围:类、字段、属性、方法、运算符、事件、构造函数(不能用于索引器、析构函数或类以外的类型)主要应用场景:主要作用于类的公共属性3、readonly修饰符初始化时机:运行时,可以声明时赋值或原创 2022-01-10 09:24:38 · 662 阅读 · 0 评论 -
[C#]几个超级实用但很少人知道的 VS 技巧
大家好,今天分享几个我知道的实用 VS 技巧,而这些技巧我发现很多人都不知道。因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS “骚”操作,他们会好奇地问:你是怎么做到的?这给我的感觉,有时候你知道一些别人不知道的小技巧便可以让你显得更专业。PS:本文所有示例演示均基于 VS 2019 版本。1. 扩展/缩小选区通过双击选中整个单词,这个操作大家应该都知道。但如何快速选择几个单词、或多个单词的字符串、或代码块呢?教大家一个快捷键,如何快速扩展选择代码区域。例如转载 2021-12-01 13:06:18 · 344 阅读 · 0 评论 -
[加密]C#实现维吉尼亚加密与解密(解密前提为已知密匙)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespac转载 2013-09-24 08:28:58 · 3214 阅读 · 0 评论 -
[C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
\1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加;\2. 添加KeyPress / KeyDown事件:1、KeyPress 和KeyDown 、KeyPress之间的区别1)KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{原创 2021-07-30 15:37:00 · 13095 阅读 · 0 评论 -
C#索引器-索引器概述
<br />数组中的元素可以通过索引进行检索,如果一个类中有很多对象,怎样简单、快速地查找到需要的对象以及对象的特性呢?索引器就是为了实现这样的功能而设计的。索引器允许类或结构的实例按照与数组相同的方式进行索引。可以简单地把索引器理解为书中的目录,字典中提供的检索的索引。<br />索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。<br />索引器可以重转载 2010-11-22 16:01:00 · 1234 阅读 · 0 评论 -
C#索引器-索引器的定义
<br />索引器定义类似于属性,但其功能与属性并不相同。索引器提供一种特殊的方法编写get和set访问器。属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员。定义索引器的语法如下:<br /><访问修饰符> 类型名称 this [类型名称 参数名]<br />{<br /> get{//获得属性的代码} <br /> set{ //设置属性的代码}<br />}<br /转载 2010-11-22 16:01:00 · 1519 阅读 · 0 评论 -
默认构造函数的作用(“A”方法没有采用“0”个参数的重载。)
<br />构造函数主要用来初始化对象。它又分为静态(static)和实例(instance)构造函数两种类别。大家应该都了解如何来写类的构造函数,这里只说下默认构造函数的作用,以及在类中保留默认构造函数的重要性。实际上,我说错了。正确的说法是:以及在类中保留空参数构造函数的重要性。<br />我们来写一个类A,代码如下:<br />public class A<br />{<br /> public int Number; //数字<br /> public string Word;转载 2010-11-22 15:37:00 · 1941 阅读 · 0 评论 -
C#中构造函数不是不能被继承吗?为什么以下的构造函数先执行?
<br />using System;<br />public class ParentClass<br />{<br />public ParentClass()<br />{<br /> Console.WriteLine("父类构造函数。");<br />}<br />public void print()<br />{<br /> Console.WriteLine("I'm a Parent Class。");<br />}<br />}<br />public class Child转载 2010-11-22 15:37:00 · 1978 阅读 · 0 评论 -
C#接口-显式接口和隐式接口的实现
<br />C#中对于接口的实现方式有隐式接口和显式接口两种:<br />隐式地实现接口成员<br />创建一个接口,IChinese,包含一个成员 Speak;我们创建一个类Speaker,实现接口Chinese<br />//隐藏式实现例子<br />public interface IChinese<br />{<br /> string Speak();<br />}<br />public class Speaker : IChinese<br />{<br /> public str转载 2010-11-22 16:00:00 · 1718 阅读 · 0 评论 -
C#方法参数传递-值传递
<br />c#常用的参数传递有两种方式:值传递和引用传递。<br />什么是值传递呢?就是把参数值放在方法中,在方法中对参数值做了修改,但是在方法调用之后,参数值还是原来的值。值传递好比把文件复制一份,通过网络传给别人,然后他可以在他的计算机上对文件做各种修改,修改会保存下来,但是你的计算机上的文件不会发生任何变化。<br />值传递参数(Value Parameter )<br />格式:方法名称(参数类型 参数名称[,参数类型 参数名称])<br />using System;<br />class转载 2010-11-22 15:05:00 · 1268 阅读 · 0 评论 -
C#索引器-索引器与数组属性的比较
<br />索引器(Indexer)<br />索引器允许类或结构的实例按照与数据相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。所以索引器也被称为有参属性。<br /><br />示例一:<br />using System ;<br />class ArrClass//没有索引器的类<br />{<br />private readonly string name;<br />public ArrClass(string name)<br />{<br />this.name =转载 2010-11-22 16:02:00 · 1474 阅读 · 0 评论 -
C#设置访问权限
<br />在C#中有一个规定:编译器不允许派生类的可访问性比其基类更高。也就是说,内部类可以继承于一个公共类,但公共类不能继承于一个内部类。<br />1、public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。对于访问公共成员没有限制。<br />有关 public 与其他访问修饰符的比较,请参见可访问性级别。<br />示例<br />在下例中,声明了两个类:MyClass1 和 MyClass2。直接从 MyClass2 访问 MyClass1 的公共成员 x 和 y。<br转载 2010-11-22 15:39:00 · 1434 阅读 · 0 评论 -
C#中类的概念
<br />面向对象编程技术中最重要的概念就是类和对象,那么到底什么是类?在编程中应如何运用?<br /><br />类(Class)实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。<br />简单地说,类是一种抽象的数据类型,是对一类对象的统一描述。在生活中,常常把一组具有相同特性的事物归为一类,当然根据分类的标准不同,划分的类也是不相同的。汽车和人都是独立的类,它们都有各自的特点。汽车这个大类还可以分为卡车,公共汽车,和小轿车等各种小类原创 2010-11-22 10:52:00 · 1213 阅读 · 0 评论 -
C#中类的声明
<br />类就是用class来声明的。class的语法如下:<br /><类的访问修饰符> class 类名<br />{<br />//类的主体<br />}<br />除class关键字和类名外,访问修饰符是可选项。下面以汽车为例声明一个类,代码如下:<br />public class Car<br />{<br />//汽车属性和方法<br />}<br />类命名要遵循的编码规则:<br />类命名应该采用帕斯卡命名法,即首字母大写。通常命名类采用完整的英文单词,如Book,Car,Teache原创 2010-11-22 10:53:00 · 1366 阅读 · 0 评论 -
C#继承中访问修饰符的区别
<br />继承中访问修饰符的区别<br />一、public 类内部可以,子类可以,其他类可以。<br />二、private 类内部可以,子类和其他类都不可以。<br />三、protected 类内部和子类可以,其他类不可以。<br />四、internal 类声明为内部的,即只有当前工程中的代码才能访问它。<br />父类中的成员如果用public修饰,任何类都可以访问;如果用private修饰,它将作为私有成员,只有类本身可以访问,其他任何类都无法访问。在C#中,使用protected修饰符的成员转载 2010-11-22 15:38:00 · 1058 阅读 · 0 评论 -
C#索引器-示例代码
<br />using System;<br />public class Photo //这个类是一个相片类<br />{<br />private string _title; //相片标题<br />//先定义默认构造函数<br />public Photo()<br />{<br /> //初始化相片标题的构造方法<br /> _title = "我是张三";<br />}<br />public Photo(string title)<br />{<br /> //初始化相片标题转载 2010-11-22 16:03:00 · 1356 阅读 · 0 评论 -
C#中base关键字-调用父类成员
<br />C#中base关键字在继承中起到非常重要的作用。它与this关键字相比,this关键字代表当前实例。base关键字代表父类,使用base关键字可以调用父类的构造函数、属性和方法。<br />使用base关键字调用父类构造函数的语法如下:<br />子类构造函数:base(参数列表)<br />使用base关键字调用父类方法的语法如下:<br />base.父类方法();<br />using System ;<br />class Teacher//老师类<br />{<br /> pub转载 2010-11-22 15:41:00 · 2864 阅读 · 2 评论 -
C#索引器-索引器和属性的区别
<br />属性和索引器的差别:一个对象只有一个属性值,所以要存放多个值必须实例化多个对象(通常情况下,实例化一个数组的对象,接着实例化的对象赋给这个数组)。一个对象对应的索引是一个数组,并且可以存放多个数值或字符串,所以只需要实例化一个对象就可以存放以及访问多个存储内容。<br />using System;<br />using System.Collections.Generic;<br />namespace aaa<br />{<br />public class arrClass{ //通过构造转载 2010-11-22 16:02:00 · 2041 阅读 · 0 评论 -
C#方法参数传递-引用参数ref关键字
<br />引用传递好比你把文件在网络上的地址告诉他人,他人通过网络访问你计算机的文件,他可以对文件进行修改并保存,此时,文件的内容就会发生变化。引用传递在方法调用之后,可以保留参数值的修改。要实现引用传递,C#通过ref关键字和out关键字来实现。<br />引用参数(Reference Parameter )<br />格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])<br />ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反原创 2010-11-22 15:06:00 · 1786 阅读 · 0 评论 -
C#方法参数传递-输出参数out关键字
<br />out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化,out关键字不要求调用代码前对传递的参数进行初始化,也可以实现引用传递。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。采用这种方法调用代码时,就可看到修改后的值。<br />输出参数(Out Parameter)<br />格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])<br />using System;<br />转载 2010-11-22 15:07:00 · 3133 阅读 · 0 评论 -
C#类的成员变量
<br />类的声明中类的主体代码通常包含类的成员变量和成员方法.声明成员变量的语法如下:<br /><访问修饰符> 数据类型 成员变量;<br />成员变量命名规范如下:<br />如果是公共成员变量、受保护的成员变量、内部成员变量,使用骆驼命名法,如name,gender等。如果是私有成员变量,使用骆驼命名法,并以下划线开头。如_age,_score等。<br />例如:下面代码声明一个Student类,类中包含私有成员变量,_name,_score,_subject,_gender。<br />cla原创 2010-11-22 10:53:00 · 1411 阅读 · 0 评论 -
C#类的成员变量
<br />类的声明中类的主体代码通常包含类的成员变量和成员方法.声明成员变量的语法如下:<br /><访问修饰符> 数据类型 成员变量;<br />成员变量命名规范如下:<br />如果是公共成员变量、受保护的成员变量、内部成员变量,使用骆驼命名法,如name,gender等。如果是私有成员变量,使用骆驼命名法,并以下划线开头。如_age,_score等。<br />例如:下面代码声明一个Student类,类中包含私有成员变量,_name,_score,_subject,_gender。<br />cla原创 2010-11-22 10:56:00 · 929 阅读 · 0 评论 -
C#访问修饰符
<br />所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。您在声明类型或成员时使用以下访问修饰符之一来指定其可访问性:<br />public :访问不受限制。可以类内和任何类外的代码中访问。<br />private: 可以被所属类访问。只有同一类或结构中的代码可以访问该类型或成员。<br />protected :可以被所属类其派生类访问。只有同一类或结构或者派生类中的代码可以访问该类型或成员。<br />internal :可以被当前程序集访问。同原创 2010-11-22 10:56:00 · 808 阅读 · 0 评论 -
C#中数组参数params关键字的作用
<br />参数数组(params)关键字可以指定在参数数目可变处采用参数的方法参数。<br />在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。<br />先定义一个带有参数数组的方法:<br />public void UseParams(params int[] list)<br /> {<br /> for (int i = 0 ; i < list.Length; i++)<br /> {<br />转载 2010-11-22 15:10:00 · 1330 阅读 · 0 评论 -
C#中调用父类的构造方法和成员
<br />C#中使用的关键字是base,但用法不完全相同。<br />1. 调用父类的构造方法<br />// 父类 <br />public class Father <br />{ <br /> public Father(String name) <br /> { <br /> this.name = name; <br /> } <br /> private String name; <br />} <br />// 子类 <br />public cla转载 2010-11-22 15:42:00 · 1363 阅读 · 0 评论