随笔分类 -  C#

摘要:一、前言 一般情况下,我们在使用ASP.NET WebApi的时候习惯创建一个Web应用程序,最终将程序部署到IIS进行运行。但有时候,我们需要在控制台或者Windows服务中运行webapi程序,这时就不适合使用IIS。这时就可以使用自托管模式。asp.net web api的自托管模式HttpS 阅读全文
posted @ 2023-03-07 16:55 .NET开发菜鸟 阅读(2020) 评论(0) 推荐(2) 编辑
摘要:一、前言 一般来说我们发送Web请求的时候,都是通过HttpClient。但是使用的时候会有两个问题: 因为HttpClient实现了IDisposable接口,每次使用如果都new一个对象的话,最后会耗尽你的主机端口。微软建议使用单例模式。 如果使用单例模式的话,端口是节省了,但是请求地址的DNS 阅读全文
posted @ 2022-04-08 21:01 .NET开发菜鸟 阅读(2026) 评论(2) 推荐(0) 编辑
摘要:今天在开发工程中,遇到了一个问题:实体类里面有属性类型是DateTime,序列化以后会带有大写的“T”,为什么时间格式中间会带有一个大写的T呢? 通过查询,发现这是标准格式规定的:国际标准化组织的国际标准ISO 8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方 阅读全文
posted @ 2022-04-03 13:15 .NET开发菜鸟 阅读(7407) 评论(0) 推荐(1) 编辑
摘要:使用WPF做的一个简单的操作文件的demo,包括复制和移动文件夹,核心思想就是使用递归,如果只是移动或者复制单一文件,直接使用File.Copy()或者File.Move()方法即可。 1、XAML代码 <Window x:Class="OperationFile.MainWindow" xmlns 阅读全文
posted @ 2022-03-25 16:57 .NET开发菜鸟 阅读(2509) 评论(0) 推荐(0) 编辑
摘要:在.NET中,对于相同的字符串,.NET会将它们指向同一个地址,它们是相同的实例。.NET中的字符串并不会更新,当更改一个字符串变量时,由于字符串的不可变性,.NET实际上是新创建一个字符串,而将变量地址指向新创建的字符串地址。 看下面的一个例子: using System; namespace C 阅读全文
posted @ 2020-04-11 10:04 .NET开发菜鸟 阅读(911) 评论(1) 推荐(0) 编辑
摘要:之前的文章中,使用过直接添加引用的方式调用WebService,还使用过HTTPClient调用WebService,这里还是使用Http请求去调用WebService。 WebService服务端代码 public class WebServiceDemo : System.Web.Service 阅读全文
posted @ 2020-04-08 16:30 .NET开发菜鸟 阅读(6689) 评论(1) 推荐(0) 编辑
摘要:一、前言 在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。首先我们创建一个WebService,里面有两个方法:一个无参的方法,一个有参的方法: 创建好了WebService以后,把We 阅读全文
posted @ 2020-03-11 13:39 .NET开发菜鸟 阅读(49767) 评论(1) 推荐(9) 编辑
摘要:一、什么是强名称 强名称是一个由程序集的标识组成并通过公钥和数字签名(针对该程序集生成)加强的名称,其中的标识包括程序集的简单文本名称、版本号和区域性信息。 由于程序集清单包含构成程序集实现的所有文件的文件散列,因此只对程序集中包含程序集清单的一个文件生成数字签名就足够了。强名称相同的程序集应该是相 阅读全文
posted @ 2020-03-03 13:32 .NET开发菜鸟 阅读(6061) 评论(0) 推荐(2) 编辑
摘要:一、单例模式 我们先来看看两种创建单例模式的示例代码。 1、饿汉式 饿汉式创建单例模式是在程序里面直接初始化了一个对象实例: class Good { /// <summary> /// 私有的静态变量,直接初始化 /// </summary> private static Good Instanc 阅读全文
posted @ 2020-02-20 14:55 .NET开发菜鸟 阅读(2707) 评论(0) 推荐(2) 编辑
摘要:一、前言 我们先来看下面一个例子: using System; using System.Threading; namespace ThreadSynchDemo { class Program { private static int Counter = 0; static void Main(s 阅读全文
posted @ 2020-02-20 14:19 .NET开发菜鸟 阅读(1238) 评论(1) 推荐(0) 编辑
摘要:一、数组(Array) 数组具有以下的特点: 数组属于线性结构,在内存中是连续存放的。 数组的元素类型必须相同。 数组可以直接通过下标访问。 数组的查找速度非常快,新增和删除速度慢。 数组在初始化时要指定数组长度。 二、动态数组(ArrayList) 动态数组具有以下的特点: ArrayList的底 阅读全文
posted @ 2020-02-19 22:30 .NET开发菜鸟 阅读(9950) 评论(1) 推荐(0) 编辑
摘要:一、前言 这个问题涉及了垃圾回收的内部机制,在通常情况下程序员并不需要去关心和干涉GC的内部执行,但是理解其算法,可以帮助程序员理解哪些代码是高效的,而哪些代码是需要避免的。 二、什么是代 GC在执行垃圾回收时,并不是每次都扫描托管堆内的所有对象实例,这样做太耗费时间而且也没有必要。简单来说,GC会 阅读全文
posted @ 2020-02-19 15:19 .NET开发菜鸟 阅读(2990) 评论(0) 推荐(0) 编辑
摘要:一、前言 在C#中,由于有了垃圾回收机制的支持,对象的析构和以前的C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制,明确怎样利用Dispose方法和Finalize方法来保证一个对象正确而高效地被析构。 二、Dispose方法的功能 我们在讲解有关using的用法时,已经 阅读全文
posted @ 2020-02-19 13:43 .NET开发菜鸟 阅读(4829) 评论(0) 推荐(2) 编辑
摘要:一、什么是GC GC是垃圾回收(Garbage Collector)的缩写。GC可以说是.NET众多机制中最为重要的,对程序员代码书写方式影响最大的机制。在CLR规范制定之初,所有机制都还在斟酌的时候,垃圾回收已经被确定会存在于.NET框架之中。 .NET的程序大部分被称为被托管的代码。托管的意义很 阅读全文
posted @ 2020-02-19 11:40 .NET开发菜鸟 阅读(2461) 评论(0) 推荐(0) 编辑
摘要:一、前言 .NET提供了垃圾回收机制,使程序员从内存管理中被解放出来。但这并不代表程序员就无须了解分配的对象是如何被回收的。更重要的是,一些非托管的资源仍然需要程序员小心地分配与回收。 理解堆和堆栈是理解内存管理的基础。每一个.NET程序都最终会运行在一个操作系统进程中,假设这个操作系统是传统的32 阅读全文
posted @ 2020-02-19 10:31 .NET开发菜鸟 阅读(1716) 评论(0) 推荐(1) 编辑
摘要:一、using语句 using可以算是.NET中新的语法元素,它清楚地说明一个通常比较占用资源的对象何时开始使用和何时被手动释放。当using可以被使用时,建议尽量使用using语句。至今为止,使用using语句发现它带给程序员的只有优点,而没有任何弊端。 在.NET的环境中,托管的资源都将由.NE 阅读全文
posted @ 2020-02-19 08:23 .NET开发菜鸟 阅读(24704) 评论(0) 推荐(9) 编辑
摘要:一、什么是深拷贝和浅拷贝 对于所有面向对象的语言,复制永远是一个容易引发讨论的题目,C#中也不例外。此类问题在面试中极其容易被问到,我们应该在了解浅拷贝和深拷贝基本概念的基础上,从设计的角度进一步考虑如何支持对象的拷贝。 在System.Object类中,有一个受保护的方法object.Member 阅读全文
posted @ 2020-02-18 22:44 .NET开发菜鸟 阅读(20006) 评论(0) 推荐(12) 编辑
摘要:这里使用ASP.NET Core创建一个WebApi项目,代码如下: using System.IO; using Microsoft.AspNetCore.Mvc; namespace AspNetCoreDemo.Controllers { [Route("api/TestHttp")] [Ap 阅读全文
posted @ 2020-02-18 21:06 .NET开发菜鸟 阅读(3476) 评论(0) 推荐(2) 编辑
摘要:三、测试 我们知道,值类型的变量是在堆栈上分配内存的,而引用类型包括System.Object的对象是在堆上分配内存的,基于这一特点,当值类型被类型转换时,会在堆栈和堆上进行一系列的操作,这就是装箱和拆箱的来源。充分理解装箱和拆箱,有助于程序员编写高效率的代码。 1、装箱和拆箱的基本概念 我们知道, 阅读全文
posted @ 2020-02-18 15:18 .NET开发菜鸟 阅读(3572) 评论(0) 推荐(3) 编辑
摘要:一、值类型和引用类型的区别 .NET的类型可以分为两类:值类型和引用类型。这两种类型各有特点,即使它们都继承自System.Object,并且有装箱和拆箱等操作确保两种类型可以方便地交互,但是理解值类型和引用类型将有助于程序员编写出高效的代码,相反的,在不理解值类型和引用类型的情况下,程序员很容易编 阅读全文
posted @ 2020-02-17 23:15 .NET开发菜鸟 阅读(7033) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示