代码默认模板 编译性高级编程语言中,几乎每种语言,都有个静态的 main 方法作为程序启动入口,每种语言都有其编写规范。为了学习 C/C++、C#、JAVA四种语言,我们要先从默认代码模板中,慢慢摸索学习。 约定: 我们常常可以看到 函数、方法这两个词,很多人对此进行了混用。 方法,就是 void Test(){} 这样的形式; 函数,指具有确定命名的、并且可以通过名称调用的代码,属性、字段、方法、委托、事件等; 只要能够通过确定的名称调用(使用)的代码块,就是函数;而方法就是 返回值、名称、参数等组成的代码块; …

2020年3月22日 0条评论 2564点热度 0人点赞 痴者工良 阅读全文

支持 Windows 和 Linux var macAddr = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();[......]继续阅读

2020年3月21日 0条评论 3366点热度 1人点赞 痴者工良 阅读全文

java 中编写 GUI 有两中工具包,分别为 AWT、Swing。 Swing 是 AWT 的拓展,Swing 具有比 AWT 丰富的组件和方法。 AWT 和 Swing 都能跨平台使用;AWT 会随着不同的系统平台,UI 样式会有所变化,Swing 则不会,设计完毕后在所有平台下样式一致。 import java.awt.*; import javax.swing.*; 一个 awt 示例 下面是一个窗口示例 import java.awt.*; public class MyFrame extends Fra…

2020年3月21日 0条评论 2797点热度 2人点赞 痴者工良 阅读全文

[TOC] 1,快速实现授权验证 什么是 JWT ?为什么要用 JWT ?JWT 的组成? 这些百度可以直接找到,这里不再赘述。 实际上,只需要知道 JWT 认证模式是使用一段 Token 作为认证依据的手段。 我们看一下 Postman 设置 Token 的位置。 那么,如何使用 C# 的 HttpClient 访问一个 JWT 认证的 WebAPI 呢? 下面来创建一个 ASP.NET Core 项目,尝试添加 JWT 验证功能。 1.1 添加 JWT 服务配置 在 Startup.cs 的 Configure…

2020年3月15日 0条评论 2840点热度 0人点赞 痴者工良 阅读全文

var authorizeData = endpoint?.Metadata.GetOrderedMetadata<IAuthorizeData>() ?? Array.Empty<IAuthorizeData>(); [......] 继续阅读

2020年3月15日 0条评论 2357点热度 0人点赞 痴者工良 阅读全文

C# 中有常见的以以下名称为后缀的类型,笔者总结了一下大概用途。 Extensions Helper 或 Helpers Scheme Builder Context Factory Provider Options Defaults Extensions 此类型用于实现拓展函数,类名后加上 Extensions。 如下面的示例实现了拓展函数,就是我们平时使用的 app.UseAuthentication();。 public static class AuthAppBuilderExtensions { publ…

2020年3月14日 0条评论 2436点热度 0人点赞 痴者工良 阅读全文

前导 编写目的 需求分析 概要设计 1,创建一个新特性,用来标识权限控制; 2,权限控制以 Controller、Action 作为单位; 3,基于 ASP.NET Core 自带的权限认证; 4,要求极速响应; 5,支持响应事件,对于验证流程,不同阶段触发事件; 6,设置接口,定义方法,如何判断用户是否有权限; 7,可以通过特性或使用默认的 ASP.NET Core 授权特性,只要登陆就有权访问的API 8,支持自定义401,403等授权验证码 详细设计 项目分析 项目介绍与功能分析 项目运行环境 项目应用场景 …

2020年3月12日 1条评论 3389点热度 1人点赞 痴者工良 阅读全文

简介 CZGL.SystemInfo 是一个支持 Windows 和 Linux 的资源信息获取库,用于获取系统环境、机器资源信息、系统资源使用情况。 Nuget 搜索 CZGL.SystemInfo 即可安装。 类库中每一个属性和方法,我都加上了注释,调用时可以看得到。 平台通用 CZGL.SystemInfo 命名空间下,有个 EnvironmentInfo 静态类,用于获取各种信息。 CZGL.SystemInfo.Info 命名空间中,有三个类型,用于获取和记录不同类型的信息。 MachineRunInfo…

2020年3月7日 0条评论 2721点热度 0人点赞 痴者工良 阅读全文

为了提高项目代码质量,所以往往会安装分析器。 但是呢,这些分析器在生成项目程序文件时,占了 10MB。这些 dll 用不上的,没必要留着占空间。 可以使用 VS 自带的属性管理器去除 也可以手动 打开项目 .csproj 文件,找到如下的两个节点 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <CodeAnalysisRuleSet&g…

2020年3月6日 2条评论 4639点热度 1人点赞 痴者工良 阅读全文

%# %# 表示格式化输出,一般这样使用 %#p。 %x 表示输出 16 进制格式,但是受环境影响,格式会变化。 %p 表示输出 16 进制 系统寻址范围为取值范围的整数。 有多少位就打印多少位。32位系统一般是 8 位,64 位系统一般 16 位。不足 8 位自动补 0 ; 例如 int 4 个字节,那么 %p 打印输出共 32 位 2 进制表示的值,不足位数自动补 0 。主要用来输出地址、指针。 %# 表示格式化输出,16 进制自动加上 0x。 指针地址的字节数 指针地址都是使用 4 个字节存储。 char *…

2020年3月5日 0条评论 3015点热度 1人点赞 痴者工良 阅读全文

分析器名为 miniprofiler,官网地址为 https://miniprofiler.com/dotnet/ 可以直接放到代码中,发布后运行测试。 支持以下框架的性能分析: ASP.NET ASP.NET Core Console .NET Console .NET Core EF6 EF Core SQL [......] 继续阅读

2020年3月2日 2条评论 3872点热度 2人点赞 痴者工良 阅读全文

C语言中没有 bool 类型,但是很多地方都需要 true 和 flase,怎么解决呢? C 语言 一般使用 1 和 0 或 非0 和 0 表示 true 和 flase。 例如 int a = 6666; int b = 161616; printf("%s",a & b?"true":"flase"); a&b 的结果是一个数字,只要大于 0 或 小于 0 ,即为 true。 而且 C# 中,?: 运算符,左侧条件必须是 bool ,不…

2020年3月2日 2条评论 3883点热度 0人点赞 痴者工良 阅读全文

二进制数, 任何数与 N 个 1 进行按位与,结果等于自身;或者与 N 个 0 进行按位或,结果等于自身。 任何数与 N 个 0 进行按位与,结果是 N 个 0;任何数与 N 个 1 进行按位或,结果是 N 个 1; 与 N 个 1 按位与。 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 可以通过此特性来获取某几位上的数。 获取某几位上的数字 例如获取一个 int 类型 8-11 位的数据。 C#版 int num, mark; …

2020年3月1日 1条评论 5315点热度 1人点赞 痴者工良 阅读全文

RuntimeInformation、Environment 获取信息 反射获取信息 获取属性值 反射获取特性值 获取某个属性的值以及别名 反射获取信息 使用 总结 [......] 继续阅读

2020年2月29日 0条评论 2654点热度 0人点赞 痴者工良 阅读全文

背景: 调试测试 Debug 时需要使用 NSwag.AspNetCore ,提供 swagger 服务,但是正式发布部署,不需要用到。 NSwag.AspNetCore 的库文件达到6MB。 可以在项目文件中使用如下条件 Condition="'$(Configuration)'=='DEBUG'" 示例: <PackageReference Condition="'$(Configuration)'=='D…

2020年2月28日 2条评论 4207点热度 2人点赞 痴者工良 阅读全文

这个查询对于多表联查特别有用,因为连接查询,有可能部分字段数据为空,直接返回null不太友好。 下面使用三个表来演示 SELECT eg.GroupId, eg.GroupName, egl.EquipGroupListId, egl.StaNo, egl.EquipNo, (SELECT IFNULL((SELECT equip_nm FROM Equip WHERE equip_no = egl.EquipNo), '此设备已被删除' )) AS EquipNm FROM EquipGrou…

2020年2月27日 0条评论 4332点热度 0人点赞 痴者工良 阅读全文

如果写 C# 时,使用了分析器,很可能会提示 string.ToString() 的行为可能因当前用户的区域设置而异 这里针对某些字符/字符串转换时出现的问题,做个列表。 IFormatProvider 这个接口用于实现字符串如何格式化转为数值类型。一般来说666、0.666 这样的数没问题,但是使用数学符号等情况、全球化字符差异,可能会出错。 IFormatProvider 正是为了解决这些问题。 Convert.ToInt32 、 string.ToString()将字符串/Object转为值类型时,会提示 需…

2020年2月26日 4条评论 4669点热度 3人点赞 痴者工良 阅读全文

.NET Core 中没有获取 Linux 的 CPU使用率等信息的功能,死心吧。 static void Main(string[] args) { Console.WriteLine("系统运行情况"); var proc = Process.GetCurrentProcess(); var mem = proc.WorkingSet64; var cpu = proc.TotalProcessorTime; Conso[......]继续阅读

2020年2月26日 0条评论 5895点热度 6人点赞 痴者工良 阅读全文

之前个人理解错误,浮点数转换少了一步。 因为当时看视频和别人博客的时候,发现很多人没有说清楚一些很细致的东西。 首先,浮点数的表示,有 定点数据表示 浮点数据表示 IEEE754 定点数据表示 原理是将一个浮点数的整数和小数部分各自转为二进制,最高位表示符号位。 例如使用定点数据表示,表示 -86.25。 86 转为二进制:0_1010110 0.25 转为二进制为 0.01 86.25 二进制为 0_1010110.01 -86.25 = 1_1010110.01 反码 1_0101001.11 补码 1_010…

2020年2月23日 2条评论 4317点热度 1人点赞 痴者工良 阅读全文

示例: 判断字符串是否由字母数字下划线组成: using System; using System.Diagnostics; using System.Text.RegularExpressions; namespace ConsoleApp6 { class Program { static Regex regex = new Regex(@"^[A-Za-z0-9]+$"); static void Main(string[] args) { string[] a = new st[....…

2020年2月23日 4条评论 3118点热度 0人点赞 痴者工良 阅读全文
1161718192026