static void Main(string[] args){//要求用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入//定义name和pwd二个变量进行存储用户名和密码string name = "";string pwd = "";while(name!="admin" && pwd != "888888"){Console.WriteLine("请输入用户名");name = Console.ReadLine();Console.WriteLine("请输入用户密码");pwd = Console.ReadLine();}Console.WriteLine("输入正确,程序退出");Cons...
一、为什么要用实体类? | 使程序简洁易懂,便于维护。 | 暗合接口不变原则。 | 体现面向对象思想。 举例说明: 不用实体类的三层 假如程序有所变动,需要增加一个参数,学生年龄 用实体类的三层 同样增加一个参数,学生年龄 很明显的看出,用实体类之后,代码明显变得简洁,面向对象封装思想。 最重要的是,如果将来有所改动,只需要改...
public int ChargeTypeCode(string typeCode){int chargeNum;switch (typeCode){case "":chargeNum = 0;break;case "12":chargeNum = 1;break;default:break;}return chargeNum;}
上面语句会提示错误,因为chargeNum并没有被赋予初始值,即使实在switch中出现复制语句也不行,因为可能会出现default没有复制的现象。 int chargeNum;switch (typeCode){case "":chargeNum = 0;break;case "12":chargeNum = 1;break;defau...
C# Task和async/await详解什么是异步同步和异步主要用于修饰方法。当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法;当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调用者不用等待该方法执行完毕,我们称这个方法为异步方法。异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以...
采用Senparc.Weixin SDK服务器端代码:using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Senparc.Weixin.MP.CommonAPIs;
using Senparc.Weixin.MP.Helpers;
using Senparc.Weixin.Exceptions;namespace Stock.weixin
{public partial class wxShare : System.Web.UI.Page{public string timestamp = string.Empty;public stri...
建议109:谨慎使用嵌套类使用嵌套类的原则是:当某类型需要访问另一个类型的私有成员时,才将它实现为嵌套类。一个典型的例子是在实现集合时,要为集合实现迭代器,这时用到了嵌套类。代码如下所示:publicclass ArrayList : IList, ICollection, IEnumerable, ICloneable
{//省略publicvirtual IEnumerator GetEnumerator(){returnnew ArrayListEnumeratorSimple(this);}[Serializable]privatesealedclass ArrayListEnumeratorSim...
.NET系统的默认初始化机制会将所有的对象设置为0[14]。对于值类型来讲,我们无法阻止其他程序员将其所有的成员都初始化为0[15]。因此,我们应该将0作为值类型的默认值。枚举类型就是一种典型的情况。我们创建的枚举类型决不应该将0视为无效状态。我们知道,所有的枚举类型都继承自System.ValueType。默认的枚举值从0开始,但是我们可以更改这种默认行为。public enum Planet{ // 显式赋值。 // 否则将默认从0开始。 Mercury = 1...
一、任务并行库 任务并行库(Task Parellel Library)是BCL中的一个类库,极大地简化了并行编程,这里以Parallel.For和Parallel.ForEach为例。在C#中for/foreach循环使用十分普遍,如果迭代不依赖与上次迭代的结果时,把迭代放在 不同的处理器上并行处理 将很大地提高运行效率,Parallel.For和Parallel.ForEach就是为这个目的而设计的。一个栗子: 1staticvoid Main(string[] args)2 {3//Parallel.For 计算0到10的平方 ...
大家可以建立一个Windows Form应用程序,在下面的各个文件中添加对应的源码: //RawSocket.csnamespace ReceiveAll{ using System; using System.Net; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Windows.Forms; [StructLayout(LayoutKind.Explicit)] public struct IPHeader { [FieldOffset(0)] public byte ip_verlen; [FieldOffset(1)] public byte ip_tos; [FieldOffset(2)] ...
目前本人接触过两种模板导出的方式:(1)C#利用NPOI接口制作Excel模板,在服务端用数据渲染模板(2)在前端利用前人搭建好的框架,利用office编写xml制作模板,在客户端进行数据的渲染,导出的格式是word。在制作报表时两种方式都可以满足的基本需求,但excel模板更加强大,因为xml模板的布局大体在事先就要确定好,扩展性不高,而excel模板就可以根据数据的特点进行自定义布局,拓展性更强。下面介绍如何在服务端利用NPOI构建exc...
ECS从本质上来说是一种设计模式.而不是某个语言的特性.该系列文章主要是探索ECS在C#中实现时遇到的各种纠结的问题与方案.同时设计一个unity为前端 .net core做服务器的分布式开发框架.但是水平很菜,难免有错.望批评指正,与君共勉. ECS是什么ECS是Entity Component System的缩写,实例由组件聚合而成.实例本身不包含任何数据,全部的数据都来自它所拥有的组件.也就是说实例有什么数据,取决它有什么组件.系统则是功能的实现.可以理解为...
问题:有时候有一些DOS命令需要我们在执行程序的时候调用,这需要使用C#提供的相关接口。代码如下,很简单,相信大家都能看懂,我就不赘述了。using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;//这个是进行dos命令调用namespace ExecuteCMD
{//实现读取Excel文件的功能class ExecuteCMD{public static void CreateDll(){Process ...
一个集合可否排序,要看系统知不知道排序的规则,像内建的系统类型,int ,string,short,decimal这些,系统知道怎么排序,而如果一个集合里面放置的是自定义类型,比如自己定义了一个Car类型,要把它排序,系统是不知道怎么办的。那么,如何告知系统排序的规则呢?有以下几种方法:1:对类实现IComparable接口,示例如下:[csharp] view plain copy print?using System; using System.Collections.Generic; using System.Linq; ...
低代码开发平台,可以自研或者使用市面的IDE工具,完成代码逻辑的服务编排。你可以把基础的业务流程理解为各个分支节点项的基础物料。通过这些物料接口接口的组装、编排和结果输出,来完成代码逻辑的自动化开发和可持续性交付。物料:这里指相对独立的业务领域模型,实现的通用性业务功能。例如:下单核心流程、支付核心流程等。组件:通常说的是技术组件,也包括中间件那部分。这部分是对于业务流程中非业务逻辑的通用性核心逻辑,...
在CSDN中的定义是:1publicstaticstring CompareExchange(
2refstring location1,
3string value,
4string comparand
5 ) 用locationl与comparand进行比较,如果相等,那么locationl的值就是value的值;如果不等locationl的值就不变。函数等同于一下函数(简单模拟): 1staticstring CompareExchange(refstring location1, string value, string comparand)
2 {
3if(location1==comparand)
4 {
5 ...