C#
文章平均质量分 95
涉及C#语言的开发小常识
MelonSuika
这个作者很懒,什么都没留下…
展开
-
C#_var
C#中有一个var类型,不管什么类型的变量,都可以用它接收,实属懒人最爱了。我没有了解过它的底层,甚至没看过它的说明文档,也不知道怎么就用上它了。凭我经验,这种 “隐式也可能是动态” 类型 应该只是效率比较低,其他不会有多少负面影响。所以在不关心效率的场合,我也就一直用着。var c;.. .此时会报错,于是我就知道了,使用var类型时,你必须声明与初始化一体,否则就会报错。还有时,我会用var来接收一些写起来很复杂类型(比如集合嵌套类型),时间一长,自己也不知道此处的var到底是啥类型。原创 2024-01-02 11:06:25 · 1090 阅读 · 0 评论 -
.NET中的Object类学习1_Object类简介&Equals方法
命名/名称空间:System程序集:System.Runtime.dll支持.NET类层次结构中的所有类,并为派生类提供低级/底层服务。(即对.NET中的所有类都提供底层支持)它是所有.NET类的最终基类;是类型层次结构的根(the root of the type hierarchy)。注意这边说Object是类型层次结构的根,为什么是类型(type)而不是类(class)。大概是因为Object是.NET系统原生的一部分。判断两个对象实例是否相等(相等性)。翻译 2023-11-16 11:23:18 · 138 阅读 · 0 评论 -
C#读取CAD文件(dwg/dxf)并处理
项目要求识别CAD图纸(图纸内容与现实事物比例是1:1)中的内容,并提取出一些关键信息。这里的CAD图纸是指CAD文件,包含多种格式,dwg/dxf/dwf/stl/pdf等等。识别其中内容,主要指文件中的图元信息(也叫实体Entity),指线段、圆弧、矩形等图形元素。得到图元基础信息(比如长度、坐标、粗细)后,进一步做处理(如得到交点、得到线段间间隔、圆弧与线段切点等)。听起来有点难,因为作为软件工程师,对CAD相关事物并不了解,它是未知的;原创 2023-09-26 11:53:40 · 4827 阅读 · 0 评论 -
C#上位机中的单例应用思考
之前写过一篇关于单例的文——C#中单例模式的实现,讲了讲单例是什么以及在C#中的常见代码实现,那篇文的内容偏理论,并不实用。getget;();...如果你还没有用过这种容器的方式,可能会觉得很麻烦;而一旦接受了这种方式,你会发现它变成了一种定式。几乎所有应用程序都可以这么做(服务容器的这种方式本身也是一种设计模式Ioc)。这些内容不是本文要讲的东西,本文主要想讲讲上位机程序中单例的应用,以及一个场景该怎样使用单例的思考。单例是很基础的设计模式,记住它是为了。原创 2023-08-28 09:59:21 · 767 阅读 · 0 评论 -
C#_Attribute
当需要访问程序元数据中的属性时。检查和实例化程序集中的类时。在运行时构建新的类。使用 System.Relection.Emit 中的类。执行延迟绑定,访问在运行时创建的类上的方法。原创 2023-05-18 05:30:11 · 584 阅读 · 0 评论 -
Quartz.NET简单使用
Quartz,中文是石英的意思,由此联想到石英钟,利用石英的某些特性制成的钟表。时间这种东西可以被高精度的计时器具切分为很小份。在每份时间中,我们都可以做一些事情,而怎么安排每份时间做什么事情,就是时间调度。因此正如上图里描述的那样,Quartz(.NET)是一个.NET开源的调度系统。它原本是流行的Java开源框架,移植到.NET就成Quartz.NET了。当然,这丝毫不影响它的强大。随便摘几句官网对它的描述,小到应用程序,大到企业系统都可以使用它。.........原创 2022-08-29 12:15:34 · 3038 阅读 · 3 评论 -
C#初识async与await
首先这里的async是一个关键字,同时也是修饰符(和abstract、static一样)。使用async修饰符可以将一个方法、lambda表达式或匿名方法指定为异步的。如果在方法或表达式上使用async修饰符,则它就被称为异步方法()。//... }官方文档原文中,接下来有这么一段话:如果你是一个异步编程的新手,或不知道异步方法如何使用await操作符来执行可能长时间运行的工作,而不阻塞调用者的线程,请阅读使用async和await异步编程的介绍。......原创 2022-08-28 14:13:11 · 828 阅读 · 0 评论 -
C# NPOI初级使用
NPOI是用于读写Excel和Word的插件包。它是Apache POI的.NET版。总之,Apache POI是一个Java的强大的、开源的Office文档处理包,而NPOI是它的.NET版本。所以在.NET平台下用NPOI来读写Office文档应该是优先级比较高的,一是稳定,二是强大,三是背后支持力量庞大。在网上介绍时有一点非常突出,使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。...原创 2022-08-24 17:28:29 · 15009 阅读 · 5 评论 -
C#初级_定时器
另一个用于多线程环境的定时器是System.Timers.Timer,默认情况下,它会在ThreadPool线程中引发一个事件。当创建System.Timers.Timer对象时,可以指定引发事件的时间间隔。使用Enabled属性来指定定时器是否引发事件。如果要指定只引发一次Elapsed事件,将AutoReset设置为false。AutoReset属性的默认值为true,意味着在interval属性定义的时间间隔内会定时引发Elapsed事件。............原创 2022-08-17 22:20:18 · 10748 阅读 · 0 评论 -
C#中单例模式的实现
该图显示了Singleton类包含一个public的static属性,该属性返回对Singleton类的单个实例的引用。而在大多数情况下,系统中该类的数据也是唯一的。因为Singleton实例是由私有静态成员变量引用的,所以直到对Instance属性的调用第一次引用该类时,实例化才会发生。这段话也说明了设计模式的一些特点,它不是与编程语言强相关的,它不是一个函数,一个类,而是更接近一种实现机制、实现思路。尽管单例模式是一种相对简单的模式,但它也有许多不同的实现,你需要根据实现的不同,做一些权衡与选择。...原创 2022-07-22 17:16:26 · 12080 阅读 · 0 评论 -
C#静态类和静态类成员
我想通过在一个静态类中定义一个静态字符串变量来实现这个功能(因为在我认知中,C#的静态变量有全局变量的意味,我在登录时修改静态变量的值,就可以在后续连接的时候连接修改后的值对应的服务器)。如果非静态类包含需要非平凡初始化(non-trivialinitialization,大概指不是在类中写死的)的静态成员,则还应定义静态构造函数(详细信息看静态构造函数相关内容)。它是属于类的,而不是类的实例的。注意一般来说,静态成员看作是属于类的,而实例成员看作是属于对象(类的实例)的,这点很有用。...........原创 2022-07-21 14:58:03 · 3340 阅读 · 1 评论 -
C#中的using关键字
前段时间开始接触在VS下用C#开发(其实是WPF,只是说到VS,往往会扯上C#,而且WPF框架的后台语言确实主要是C#),新建一个WPF应用程序后,在MainWindow.xaml.cs文件开头会有一堆using xxx的语句。因为以前接触过C++,所以对using也不陌生,毕竟using namespace std这样的语句在C++中非常常见。所以很自然的,也很想当然的认为这边的用法和C++一样,就是引入命名空间,不必深究。不过,在最近学习EF Core的过程中,在上下文的使用时,看到了这样的语句,觉原创 2022-06-28 17:07:51 · 17642 阅读 · 4 评论 -
EFCore学习笔记(1)——初识EFCore
最近在用MVVM模式开发一个项目,UI和业务逻辑部分写的差不多了,两部分对应到MVVM就是View和ViewModel(在三层架构中可以认为是UI呈现层和BLL业务逻辑层)。接着开始写数据访问,但数据访问部分,我没系统地研究过该怎么写,之前都是直接写在VM中和业务代码交织在一起的,去网上查询了一番之后,发现在三层架构中往往会将其写在DAL层(所以很多开源项目就项目目录下会有UI、BLL、DAL三个文件夹),在MVVM模式中会写在Model中(也有写在VM中的,但是从我对MVVM的认识来看,VM是处理业务逻辑原创 2022-06-25 14:37:09 · 987 阅读 · 0 评论 -
C#中的钩子是啥?
不知道你有没有在写Windows桌面软件时遇到钩子(Hook)这个词,反正每次只要我重拾C#,开始写些桌面软件,都会遇到它。而且每次遇到它,我都是先百度一下,大概了解到它就是事件处理程序一样的东西就好了。所以我现在的脑子中就是 钩子=handler。但是这次遇到这个词之后,我又百度了它。我意识到我不能再这么折磨自己了,应该对这个概念有个更系统的理解。于是,我又打开了百度,与以往不同的是,我这次打算记录一下各种说法(微软文档、百度词条),并结合我的理解对它进行整理。度娘的这段话,细细读一下,其实已经把钩子的特原创 2022-06-20 08:50:31 · 1446 阅读 · 0 评论 -
LINQ简介
文章目录一、前言二、认识一、前言 一次我问同事,“你们在开发项目时SQL语句怎么处理?”没等我把问题问清楚,他就回答我:“LINQ+lambda。” 其实我本意是项目中SQL语句好多,统一管理起来好麻烦,有时候语句中的参数也会发生变化,要用字符串拼接或者string.format(“”),有没有什么办法可以把这些散落的不一样的SQL语句更好地管理起来呢。虽然最后我用了一个公共类,将语句在公共类中制成静态格式化字原创 2022-06-01 09:57:52 · 330 阅读 · 0 评论 -
.NET是个啥
文章目录一、前言二、认识*2.1. 什么是.NET?概述2.2. 跨平台2.3. 免费且开源2.4. .NET由谁提供支持?*2.5. .NET Core,.NET Framework,Mono,UWP2.6. 工具与生产力2.6.1. 编程语言2.6.2. IDEs2.6.3. SDK和运行时环境2.6.4. 工程系统和MSBuild2.6.5. CI/CD*2.6.6. NuGet2.6.7. .NET交互2.7. 执行模块*2.7.1. CLR2.7.2. JIT编译器和IL2.7.3. AOT编译器原创 2022-05-29 15:50:23 · 1866 阅读 · 0 评论 -
一篇看懂C#中的Task任务_初级篇
文章目录一、前言二、认识2.1. 基于任务的多线程编程2.2. 隐式地创建并运行一个任务一、前言 在.NET平台使用C#进行编程时,遇到了并行操作的需求,于是上网一搜多线程,一个非常简单语句出现了:Task.Factory.StartNew(() =>{});还有,Task.Run(() =>{}); 于是,拿来一用,往花括号中填入一些业务代码。“嗯,确实是多线程。”&nbs原创 2022-05-28 15:42:07 · 21755 阅读 · 2 评论