csharp
文章平均质量分 75
sinolover
完成项目,就要软硬兼施
展开
-
【转】解决MeasureString 不准确的问题
转自:https://www.cnblogs.com/MRRAOBX/articles/7473803.html我在将字符串(含中文)Draw到一幅图片上时发现不准这个问题的。比如一幅图片的宽是400pixel,Graphics对象g的GraphicUnit是Pixel,我要画到图上的字符串是str,我用g.MeasureString(str.SubString(0,i),font)来计算前i个字符的宽度width.当width大于宽度时,停止循环,并将前i个字符画到图片上(使得文字靠右对齐),查看原创 2021-08-27 17:40:32 · 2507 阅读 · 0 评论 -
【转】深度理解C# 的执行原理
转自:https://zhuanlan.zhihu.com/p/47177008从编译原理说起 虚拟机是什么 C# 是什么,IL 又是什么 .Net Framework vs Mono Unity3D 中的 C# 小结作者:易立 | 腾讯IEG高级工程师为什么 Unity3D 可以运行 C#,C# 和 Mono 是什么关系,Mono 和 .Net Framework 又是什么关系?我们深入的来聊一聊这个话题!从编译原理说起一句话介绍编译器:编译器是将用某种程式语言写成的源代码(源原创 2021-08-26 11:42:36 · 495 阅读 · 0 评论 -
【转】C#检查键盘大小写锁定状态的方法
转自:本文实例讲述了C#检查键盘大小写锁定状态的方法。分享给大家供大家参考。具体分析如下:1、命名空间: 1 using System.Runtime.InteropServices; 2、导入方法 1 2 [DllImport("user32.dll", EntryPoint = "GetKeyboardState")] public static extern int GetKeyboardState(b原创 2021-06-10 08:50:28 · 1272 阅读 · 0 评论 -
【转】.NET Core 可移植类库PCL Portable Class Library详解
转自:https://www.kaifaxueyuan.com/server/dotnet-core/dotnet-core-portable-class-library.html在这一章中,我们将讨论什么是PCL (可移植类库),以及为什么我们需要PCL。为了理解这个概念,让我们打开上一章创建的类库项目文件夹。什么是PCL 现在让我们了解什么是PCL 可移植类库项目使您能够编写和构建在多个.net框架平台上工作的托管程序集。 您可以创建包含希望在许多项目中共享的代码...原创 2021-04-16 11:40:27 · 456 阅读 · 0 评论 -
【转】如何开始学习CoreCLR源代码?
作者:RednaxelaFX链接:https://www.zhihu.com/question/28554410/answer/41486461来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。先解决些大问题再回到题主的具体问题。首先,请确定自己是不是真的想深入到VM(CLR)层面的代码。是不是其实有些好奇的地方在.NET Core的库层面就已经够用?是的话请看dotnet/corefx,而不是CoreCLR。然后,如果是已经对C#有所了解但想进一步了解CL.原创 2020-08-19 09:04:15 · 838 阅读 · 0 评论 -
【转】静态类与非静态类
静态类 继承(多态)、静态本身就是相反的。另外需要知道属性、事件其实是些特殊的方法。 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。 static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。 静态类与非静态类基本相同,但存在一个区别:静态类不能实例化。 也就是说,不能使用 new 关键字创建静态类类型的变量。 因为没有实例变量,所以要使用类名本身访问静态类的成员 对于 只对输入参数进行运算 而不获取或原创 2020-08-18 17:58:59 · 582 阅读 · 1 评论 -
【转】C#与C++的发展历程第一 - 由C#3.0起
C#5.0作为第五个C#的重要版本,将异步编程的易用度推向一个新的高峰。通过新增的async和await关键字,几乎可以使用编写同步代码的方式来编写异步代码。本文将重点介绍下新版C#的异步特性以及部分其他方面的改进。同时也将介绍WinRT程序一些异步编程的内容。C# async/await异步编程写async异步编程这部分内容之前看了好多文章,反复整理自己的思路,尽力保证文章的正确性。尽管如此仍然可能存在错误,请广大园友及时指出,感谢感谢。异步编程不是一个新鲜的话题,最早期的C#版.原创 2020-12-14 10:45:42 · 310 阅读 · 0 评论 -
【转】C# 温故而知新:Stream篇(—)
目录:什么是Stream?什么是字节序列?Stream的构造函数Stream的重要属性及方法Stream的示例Stream异步读写Stream 和其子类的类图本章总结什么是Stream?MSDN 中的解释太简洁了:提供字节序列的一般视图(我可不想这么理解,这必定让我抓狂,我理解的流是向自然界的河流那样清澈而又美丽,c#中的流也是一样,许多技术或者说核心技术都需要流的帮忙)那什么是字节序列呢?其实简单的来理解的话字节序列指的是:字...原创 2020-12-07 10:50:59 · 981 阅读 · 0 评论 -
【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
这两天忙着把框架改为支持加载C++和Delphi的插件,来不及更新blog了。 原来的写的框架只支持c#插件,这个好做,直接用c#的反射功能便可。但是公司不是所有人都搞C#,也不是所有的程序C#都能很好的完成,又或者其他公司提供的API不是C#的,这个时候,就需要这个框架能够支持多种语言了。 废话不多说,进入正题。 上网一搜,C#加载非托管的dll,无非就是使用 DllImportAttribute 。然而,这个属性里面要指明dll所在的路径,因为又是写在属性中...原创 2021-03-23 15:03:52 · 236 阅读 · 0 评论 -
【转】C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁
转自:https://www.cnblogs.com/marvin/p/PutDllToSpecificFolder.html?utm_source=tuicool&utm_medium=referral系列文章C#开发奇技淫巧一:调试windows系统服务 C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件 C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁程序目录的整理想必C#的开发者都遇到过这个问题,引用的dll都放在根目录下,随着项目的日益增大,.原创 2021-03-23 15:02:42 · 586 阅读 · 0 评论 -
C# SFTP上传文件
最近工作中用到一个SFTP上传文件的功能,因为客户端是C#做的就搜索了一些C#SFTP资料,发现网上除了一篇博客外还没有一篇系列完整的整理文档,就整理了下,希望大家多提建议,共同提高。sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp与ftp有着几乎一样的语法和功能。sFTP为SSH的一部份,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫...原创 2020-06-09 18:12:16 · 917 阅读 · 0 评论 -
C#语言之“string格式的日期时间字符串转为DateTime类型”的方法
方法一:Convert.ToDateTime(string)string格式有要求,必须是yyyy-MM-dd hh:mm:ss================================================方法二:Convert.ToDateTime(string, IFormatProvider)DateTime dt;DateTimeFormatInfo ...原创 2020-04-09 10:11:33 · 637 阅读 · 0 评论 -
关于DateTime的一点记录 ToString("yyyy-MM-dd HH:mm:ss")
DateTime dt = DateTime.Now;string z = dt.ToString("yyyy-MM-dd HH:mm:ss");//你知道这个是“年月日时分秒”的格式吧?string a = dt.ToString("yyyy-MM-dd HH:mm:ss ms");//这个你认为一定是 +毫秒的格式?string b = dt.ToString("yyyy-MM...原创 2020-04-08 16:29:27 · 1192 阅读 · 0 评论 -
C#中 ??、 ?、 ?: 、?.、?[ ]、:
1. 可空类型修饰符(?)引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:string str=null; 是正确的,int i=null; 编译器就会报错。为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?"例如:int? 表示可空的整形,DateTime? 表示可为空的时间。T? 其实是System.Nulla...原创 2019-08-23 09:16:24 · 201 阅读 · 1 评论 -
【转】C# HMAC Sha1 生成签字
最近因为工作的需要,开始接触腾讯云,在调用CMQ服务时发现官方提供的SDK只有基于.Net Framework的,而现在做.net项目的谁不是用.net core啊。好吧,既然没有官方的SDK,只能自己写服务来调用Api了。遇到的第一个麻烦点的事情就是生成签名(Signature),这里有要记录一下的就是腾讯API生成签名所用的加密方法HMACSHA1,由于官方只有php的代码案例,所以查了查网络,找到了.net的相应方法,记录如下:public static string ToHMACSHA.原创 2020-12-30 13:42:24 · 1208 阅读 · 0 评论 -
【转】OWIN是什么?
OWIN的英文全称是Open Web Interface for .NET。如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。为什么需要这样一个接口呢?因为.NET Web应用程序是运行于Web服务器之中的,.NET Web应用程序需要通过Web服务器接收用户的请求,并且通过Web服务器将响应内容发送用户。如果没有这样一个接口原创 2021-03-11 17:08:50 · 326 阅读 · 1 评论 -
【转】C#运算符重载**
https://www.yiibai.com/csharp/csharp_operator_overloading.html在C#中,可以重新定义或重载大多数内置运算符。 因此,程序员也可以使用具有用户定义类型的运算符。重载运算符是具有特殊名称的功能,关键字operator后跟定义运算符的符号。 类似于任何其他函数定义,重载运算符具有返回类型和参数列表。例如,通过以下示例函数:public static Box operator+ (Box b, Box c){ Box box .原创 2021-01-19 10:55:16 · 628 阅读 · 1 评论 -
【转】ADFS 概念与基本开发介绍
(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS 相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候搞的比较辛苦,因此总结此文档,以解后人之忧。本文会首先介绍与联合身份验证有关的概念及相关的系统设计意图,随后会对 ADFS 联合身份验证的配置过程、结构及处理流程进行阐述。然后会基于已有的系统提出一个支持多 ADFS 联合身份验证的改进实例,并对其结构及处理流程进行阐述。最后会对开发过程中所遭遇的一些问题进行介绍。真诚希望本文能够帮助读者较快地了解联.原创 2021-01-18 10:41:03 · 671 阅读 · 0 评论 -
【转】继承过程中 父类子类的 字段方法 内存分配 (非java语言)
名人名言:思想好比火星:一颗火星会点燃另一颗火星。一个深思熟虑的教师和班主任,总是力求在集体中创造一种共同热爱科学和渴求知识的气氛,使智力兴趣成为一些线索,以其真挚的、复杂的关系——即思想的相互关系把一个个的学生连接在一起。——苏霍姆林斯基首先给出部分代码,由此来分析一下运行过程中对象、字段的创建过程,和编译过程中方法列表的创建过程。public class Animal{public virtual void Eat(){Console.WriteLine("Animal Eat" );.原创 2021-01-19 10:55:23 · 263 阅读 · 1 评论 -
【转】C#中[STAThread]的作用
C#的关键字 [STAThread]即 single-threaded apartment一:每个Thread都有一个关于ApartmentState的属性,可以把它设置为:STA或者MTA,或者UNKNOWN。当你想指定工程的启动窗口的时候,你需要在该窗口类中申明一个Main()方法,并为这个方法设置[STAThread]属性。详细信息,清查阅MSDN中关于Threading和COM Interop和COM+ Apartment Model的文章:http://msdn.microsoft.com原创 2021-01-16 16:38:28 · 1218 阅读 · 0 评论 -
【转】Path.Combine (合并两个路径字符串)方法的一些使用细节
System.IO.Path.Combine 简单来说,就是合并两个路径字符串。比如下面这个调用,Path.Combine(@“C:\11”,“aa.txt”)返回的字符串路径为:C:\11\aa.txt这个方法的声明如下:public static string Combine ( string path1, string path2 )我们在合并一些目录的时候,它的两个参数有些特殊限制,下面我们就来依次看这些特殊限制1、如果其中任意一个参数为 null ,会抛出异常:An un原创 2021-01-13 09:52:23 · 819 阅读 · 0 评论 -
【转】.NET框架简介
.NET 框架是由微软开发的软件开发平台,其最主要的两个组成部分是公共语言运行时 (CLR) 和框架类库 (FCL),基础类库 (BCL)是框架类库的一个子集。.NET 框架简介下图展示了 .NET 框架的主要结构。其中,最下层的无疑就是操作系统了。在 .NET 框架中,运行于底层的是公共语言运行时 (CLR),它是公共语言基础设施 (CLI) 的一个实现。在 CLR 之上,.NET 框架提供了全面、丰富的框架类库 (FCL),这些类库通过 CLR 调用操作系统的 API 实现各种.原创 2021-01-13 09:52:17 · 3053 阅读 · 0 评论 -
【转】修饰符new将父类中的该方法隐藏掉有什么意义 不隐藏有什么弊端
这是一个C#语法的问题。子类如果要重写父类的方法的话,virtual-override一定成对的。子类不重写,而是创建一个属于自己的同名方法,就最好加个new。如果不加new也等于new,但是编译器都会提醒你,加个标识比较好。区别见代码: class Program { static void Main(string[] args) { A a = new B(); a.TestFunc(); //如果...原创 2021-01-13 09:52:11 · 259 阅读 · 0 评论 -
【转】C#中ToString()格式详解
以下内容均摘自博客园,仅供资料查询。ToString格式化在很多对象显示为字符串的时候都会使用到ToString中的格式化,由于以前没怎么注意到这个问题,想总结一下各个基础结构对象的格式化,以便后备之用!!!Int.ToString(format):格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下:格式说明符说明 示例 输出 C 货币 2.5.ToString("C".原创 2020-12-10 08:43:40 · 648 阅读 · 0 评论 -
【转】C#字节数组_字符串相互转换
https://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761137.html如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了。为了进行这样的转换,我们不得不借助另一个类:System.Text.Encoding。该类提供了 bye[] GetBytes(string) 方法将字符串转换成字节数组,还提供了 string GetString(byte[]) 方法将C#字节数组转换成字符串。如下字符串与字原创 2020-12-10 08:37:20 · 361 阅读 · 0 评论 -
【转】C#各类控件的输入输出(思维导图、知识点分析、案例解析)
第六周学习笔记—C#各类控件的输入输出1.思维导图知识点汇总:着重介绍几个常用控件:数据显示控件DataGridView控件列设置a)、列的宽度铺满这个控件 设置如下:把AutoSizeColumnsMode=Fill;//可以在属性窗口中设置b)、列名居中代码如下:this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleC.原创 2020-12-07 09:06:47 · 1346 阅读 · 0 评论 -
【转】C# 动态对象(dynamic)的用法
说到正确用法,那么首先应该指出一个错误用法:常有人会拿var这个关键字来和dynamic做比较。实际上,var和dynamic完全是两个概念,根本不应该放在一起做比较。var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看上去就好像我们在编码的时候是用实际类型进行申明的。而dynamic被编译后,实际是一个object类型,只不过编译器会对dynamic类型进行特殊处理,让它在编译期间不进行任何的类型检查,而是将类型检查放到了运原创 2020-11-26 10:15:26 · 1981 阅读 · 0 评论 -
【转】!C# 基础至集合-数组、List<T>、ArrayList、LinkedList、HashMap的一些区别
在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。由于这种限制不方便,所以出现了ArrayList。ArrayList、List<T>ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。但是ArrayList也有一个缺点,就是存入ArrayList里面的数据都是Object类型的,所以如果将值类型存入和取出的时候会发生装箱、拆箱操作(就是值类型与引用类型之间的转换),这个会影响程原创 2020-11-26 09:51:41 · 681 阅读 · 0 评论 -
【转】C# DataTable使用方法详解
在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。1、添加引用 1 usingSystem.Data; 2、创建表 1 2 3 4 //创建一个空表 DataTable dt = new DataTable(); //创建一个名为"Table_New"的空表.原创 2020-11-20 17:46:04 · 874 阅读 · 0 评论 -
【转】c#中@的3种作用
以前只知道@在C#中为了写文件路径的\不要加转义符而在前面加上@标识符,没想到@还有其他的作用1.忽略转义字符例如 1 stringfileName ="D:\\文本文件\\text.txt"; 使用@后 1 stringfileName =@"D:\文本文件\text.txt"; 2.让字符串跨行例如 1 2 3 4 stringstrSQ...原创 2020-11-20 09:09:19 · 288 阅读 · 1 评论 -
【转】对ASP.NET程序员非常有用的85个工具
介绍 这篇文章列出了针对 ASP.NET 开发人员的有用工具。 工具 1. Visual StudioVisual Studio Productivity Power tool:Visual Studio 专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案,可搜索的附加参考对话框等 ReSharper:提高 .NET 开发人员生产力的工具,提高代码质量,通过提供快速修复消除错误,等等 MZ-Tools:它可以在方法、文件、项目、解决方案或项目组、选定的文本,文件组合或原创 2020-11-24 18:02:02 · 405 阅读 · 0 评论 -
【转】C#中枚举类型与静态变量
C#中enum类型,相较于其他基本数据类型来说比较特殊,他的本质上是一堆整数组成的结构体,并且支持与整型的显式转化。既然是枚举类型,那么也就是说enum中的变量是不可以轻易改变的,所以C#将枚举类型认定成了static变量,在使用的时候与static变量一样(一组大写字母表示的是一个特定的类、枚举类型、命名空间或值),来声明使用:CLASS.ENUM var_name = CLASS.ENUM.XXX;或者在代码端头部加入using static NAMESPACE;写个随笔文章是原创 2020-11-13 18:52:46 · 1713 阅读 · 0 评论 -
C# 基础——C#特性
.NET C# Web开发学习之路——C#特性C#历史办版本及特性语言版本 发布时间 .NET Framework要求 Visual版本 C# 1.0 2002.1 .NET Framework 1.0 Visual Studio .NET 2002 C# 1.1\1.2 2003.4 .NET Framework 1.1 Vi...原创 2020-03-08 07:48:00 · 431 阅读 · 0 评论 -
C#中双问号、双冒号等几个特殊关键字
@:放在字符串的前面,直接让字符串原样输出。常用于:sql语句、路径等string sql = @"select * from tablename where id = '1'";string path = @"C:\filename.xml";如果字符串里边包含双引号时,需要两个双引号代表一个双引号string s = @"He said,""yes""";//s输出He said,...原创 2020-03-05 18:48:06 · 1855 阅读 · 1 评论 -
C# 有什么惊艳到你的地方?
作者:皮皮关链接:https://www.zhihu.com/question/335137780/answer/786853293来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。很多游戏开发者都是由于Unity而“被迫”使用C#的。但用过一段时间,就会由衷赞叹:真香。如果有些同学没感觉到很香,有可能是没有仔细和其它语言比较 :)1、C#良好兼容...原创 2020-02-25 09:56:40 · 755 阅读 · 0 评论 -
C#基础操作符详解
本节内容:1.操作符概览;2.操作符的本质;3.操作符与运算顺序4.操作符详解。1.操作符概览:操作符(Operator)也译为”运算符”操作符是用来操作数据的,被操作符操作的数据称为操作数(Operand)表格从上往下优先级递减,同一行运算符的优先级一样一般按从左到右算,“=”赋值操作符,是先运算右边的值再运算左边的值,所以是最后运算的...原创 2020-02-25 09:56:30 · 1733 阅读 · 0 评论 -
使用.NET中的XML注释(一) -- XML注释标签讲解
一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用。 C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。 这篇文章将展示如何使用这些XML注释。 在项目开发中,很多人并不乐意写繁杂的文档。但是,开发组长希望代码注释尽可能详细;项目规划人员希望代码设计文档尽可能详尽;测试、检查人员希望功能说明书尽可能详细等等。如...原创 2020-02-21 09:27:56 · 1162 阅读 · 0 评论 -
C#通用类Helper整理
★前言 最近下载了tita_chou在CSDN上传的一个资源,是在工作中整理的C#帮助类,里面包含了很多实用的类,想到我之前收集过自己用到少的可怜的类,心生敬意啊。当粗略的查看了那个资源,发现有一些是重复的,有一些我的里面有的那个没有,于是乎就萌生了重新整理一个属于自己的帮助类,于是乎就花了几个晚上的时间,重新过了一遍,还借用SandCastle工具生成了帮助文档(CHM),这一个开源...原创 2020-02-21 09:27:17 · 1529 阅读 · 0 评论 -
什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT
什么是.NET?起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service,也就是后来的.NET。软件层:.NET可以被看作是介于操作系统和编程语言之间的软件层,它可以支持多种编程语言,包括C#,VB.NET,C++,F#,等等。用来产生托管代码的框架、平台...原创 2020-02-20 10:23:28 · 543 阅读 · 0 评论 -
“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
既然要学.NET,就要先认识认识她,我不喜欢大段大段文字的东西,自己通过理解,画个图,来看看.NET的沉鱼落雁,闭月羞花之容。 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石。.NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程...原创 2020-02-18 06:52:15 · 319 阅读 · 1 评论