
C#
杨兜兜
这个作者很懒,什么都没留下…
展开
-
C#在同一个项目下,开发及运行多个windows服务
1、新建一个windows服务方法:右键解决方法-添加-类-windows服务2、在该类中(右键查看代码),编写服务的执行代码3、【重要】在Program中,在main函数中,加入新的服务static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new Upd原创 2022-04-12 12:02:13 · 1046 阅读 · 0 评论 -
C# 代码绘制SVG图形 简单示例
文中使用的Svg库,Svg 3.1.1Nuget网址:https://www.nuget.org/packages/Svg/github网址:https://github.com/vvvv/SVG,文档不太多,但是有遇到问题什么可以去Issues里提问,或没事看看他们的问题也行安装:Install-Package Svg -Version 3.1.1简单示例一、Text文字1.1、Text水平方向 SvgDocument svgDocument = new SvgDocume原创 2020-12-31 14:49:45 · 6219 阅读 · 3 评论 -
写了那么多年C#,但一直不知道的事儿系列之3
34、委托类型(关键字delegate)用来定义和响应应用程序中的回调,委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法),内置支持多路广播和异步方法调用的对象。 多路广播是指一个委托对象可以维护一个可调用方法的列表而不只是单独一个对象。给一个委托对象添加多个方法时,不用直接分配,重载+=操作符即可。从委托中移除成员,使用-=操作符即可(实际上是手动调用静态Delegate.Remove()方法的简写方式)。 event关键字,目的是为了简化自定义方...原创 2020-12-04 11:22:10 · 141 阅读 · 0 评论 -
写了那么多年C#,但一直不知道的事儿系列之2
26、接口实现命名冲突:通过使用显示接口来解决,即,在实现接口时,参考:ReturnType InterfaceName.MethodName(params);同时,需要使用显示转换来访问需要的功能。27、【.NET 基础类库预定义接口】构建可枚举类型IEnumerable和IEnumerator,适用foreach关键字允许遍历任何数组类型的内容,若一个类中,某一个属性是一个数组,则只需要将类实现IEnumeable接口的GetEnumerator()方法,在方法中返回该属性的GetEnumerato原创 2020-11-24 15:59:08 · 171 阅读 · 0 评论 -
Microsoft Visual Studio 2017 连接postgreSQL 出错
未能正确加载NpgsqlVSPackage包已安装版本:EntityFramework6.Npgsql 3.1.1Npgsql4.1.3.1卸载上面的包,重新安装使用Nuget程序包管理器控制台安装连接所需要的Nuget包,输入如下代码: install-package npgsql -version 3.2.7 install-Package EntityFramework6.Npgsql -Version 3.1.1 因为先安装了nuget包,才看到这个帖子...原创 2020-11-16 20:34:26 · 951 阅读 · 0 评论 -
C# .NET网络编程
读书笔记:《Visual C#网络编程技术及实践》清华大学出版社,梅晓冬 颜烨青编著概述:在网络领域,所谓协议,就是指一套大家都公认的通信规则。不同的协议是工作在不同的层上的,而层与层之间则通过接口来描述。网络协议:计算机之间的相互通信需要共同遵守一定的规律原则,这些规则就称为网络协议。常见的协议有TCP/IP(传输控制协议/网际协议)、IPX/SPX、NetBEUI等。在局域网中用得比较多的是IPX/SPX,用户如果访问Internet,则必须在网络协议中添加TCP/IP。 接口:两台主机直接.原创 2020-11-12 17:29:01 · 668 阅读 · 0 评论 -
写了那么多年C#,但一直不知道的事儿系列之1
1、??操作符,跟可空类型配合,当获得的值是null时,可以用??操作符给一个可空类型赋值,比传统的if else写法更紧凑, pamaTest ?? 100; 意味着,如果可空变量pamaTest为null,则赋值为100;2、this关键词,使用this进行串联构造函数调用,如:public Motorcycle() { }public Motorcycle(int intintensity) :this(intintensity,"") { }public Motorcycle(int原创 2020-11-11 17:15:04 · 249 阅读 · 4 评论 -
C# 结构类型struct
结构类型,值类型,派生自System.ValueType,分配在栈上而不是垃圾回收堆上。使用关键字struct来创建结构创建结构变量:可以直接使用,也可以用new关键字创建(会调用结构默认的构造函数--每一个字段被自动设置为默认值)在结构类型里有一个引用类型的属性,默认情况下,当值类型保护其他引用类型时,赋值将生成一个引用的副本,有两个独立的结构,每一个都包含指向内存中同一个对象的引用(也就是“浅”复制)。当想要执行一个“深”复制时,即将内部引用的状态完全赋值到一个新对象中,则需要实现IClonea原创 2020-11-11 16:03:37 · 444 阅读 · 0 评论 -
C#方法和参数修饰符&命名参数
参数修饰符:1、无,默认行为是按值传递,即值类型则是传递数值。2、out,输出参数由被调用的方法赋值,因此它是按引用传递,如果被调用的方法没有给输出参数,则会出现编译错误3、ref,调用者赋值,引用赋值,被调用者没有给出参数,不会出现编译错误4、params,可变参数作为单独的逻辑参数进行传递,方法只能有一个parms修饰符,且必须是最后一个参数;关于可选参数:必须在编译时确认,而不能是运行时确认,比如Datetime.Now就是无效的;当有params时,可选参数失效(必填).原创 2020-11-10 16:31:20 · 249 阅读 · 0 评论 -
C# var隐式类型
1、可以用var类型表示任何类型,包括数组、泛型类型,以及自定义的类型2、只能用于方法或属性范围内的本地变量。不可以定义为返回值、参数或自定义类型的字段数据自定义类型的字段数据:class TestClass{ //错误,不能用于字段数据 private var myInt = 10; }3、必须在声明时分配初始值,并且不可以是null4、强类型特性,并且只会在编译时影响变量的声明,一旦分配类型后,无法再为该变量分配不同的类型5、var本地变量的用途原创 2020-11-09 17:32:45 · 206 阅读 · 0 评论 -
C# Selenium.NoSuchElementException: no such element: Unable to locate element:
有时候按钮点击之后,才会build出我们需要的元素,这个时候往往需要时间去等待,如果单纯用隐式等待或用Thread.sleep,则无法确定什么时候才能加载完成,可能导致异常或时间的浪费。【隐式等待】允许Web页面中的元素在特定的时间内加载完成。如果超出了设定的时间,指定的元素仍没有被加载完,则抛出异常。代码如下:driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);因此,可以采用wait until方法//.原创 2020-08-07 09:51:26 · 800 阅读 · 0 评论 -
C# Hotmail SMTP not authenticated to send anonymous mail 解决方案
错误日志:The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM问题原因:Microsoft 帐户认为有异常登录行为导致的解决方案:1、在个人中心-安全-登录活动-找到对应发送.原创 2020-07-31 10:38:33 · 1741 阅读 · 0 评论 -
EF 判断是否有数据 Any和Count之选择
源码参考 public static int Count<TSource>(this IEnumerable<TSource> source) { if (source == null) throw Error.ArgumentNull("source"); ICollection<TSource> coll...原创 2020-04-15 11:28:44 · 2185 阅读 · 0 评论 -
使用Newtonsoft.Json 序列化和反序列化
一、将List集合转成json格式的字符串 JsonSerializer serializer = new JsonSerializer(); StringWriter swJson = new StringWriter(); serializer.Serialize(new JsonTextWriter(swJson), list); string resultString ...原创 2019-12-26 16:04:07 · 5446 阅读 · 0 评论 -
EF 数据类配置设置方式 Fluent API
除了惯例原则与属性数据注解外,Fluent API是另一种支持数据类配置设置的方式。优先权:Fluent API> 数据注解 > 惯例。在DbContent类定义OnModelCreating方法是最常用的调用Fluent API的地方。public class SchoolContext: DbContext { public DbSet<Student&...原创 2019-11-05 11:06:24 · 620 阅读 · 0 评论 -
C# 通用方法 去掉类中所有字符串类型的前后空格
public static void TrimClassStringProperties<T>(T model) { Type t = model.GetType(); PropertyInfo[] PropertyList = t.GetProperties(); foreach (Prope...原创 2019-10-11 12:54:50 · 522 阅读 · 0 评论 -
Entity Framework 无法对没有主键的视图映射实体的解决办法
在数据模型(DbContext)中的OnModelCreating方法下加入下面的代码即可解决该问题 modelBuilder.Entity<TableName>() .HasKey(l => new { l.column1, l.column2});...原创 2019-08-22 15:23:17 · 496 阅读 · 0 评论 -
解决WebApi,返回json数据date日期格式带T的问题
1、WebApiConfig类MVC中默认使用Newtonsoft.Json序列化的,所以在WebApiConfig的Register中加入以下代码即可//格式化json数据中的时间的T var jsontimeset = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerS...原创 2019-05-29 16:53:38 · 2486 阅读 · 0 评论 -
C# EF框架调用数据库中已存在的标量值函数
1、NuGet包管理中,安装EntityFramework.Functions 2、在EF的上下文Context中写Function的信息 [Function(FunctionType.NonComposableScalarValuedFunction, nameof(GetFossilListCount), Schema = "dbo")] ...原创 2019-02-20 15:59:51 · 666 阅读 · 0 评论