版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:,转转请注明出处:https://www.chuangxiangniao.com/p/624794.html/attachment/176023966331889
微信扫一扫
支付宝扫一扫
相关推荐
-
从0自学C#13–子类和父类方法的锁对象问题
调用父类方法时,如何与子类方法,在锁对象不是同一个实例下,能线程安全,请见下面三种情况。 case1: 如下代码,在调用父类的方法时,和子类的方法,发生线程安全问题。原因的锁对象的实例不是同一个。 using System;using System.Collections.Generic;using…
-
C++ 中字符串的使用
当我们一开始使用c++语言来处理字符串的时候,会感觉非常的麻烦。c语言中缺少相应的字符串处理函数,如果想要实现某个字符串功能,只能靠我们自己来实现。但是当来到c++中,字符串的处理就会变得异常简单。今天我们就来学习一下c++中最高频的字符串处理函数。示例代码上传至:https://github.co…
-
C++ 智能指针详解
c++++ 智能指针详解 一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。 用智能指针便可以有效缓解这类问题,本文主…
-
C++ 的强制类型转换
q:什么是c风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。 比如,为了…
-
C++ 多线程框架(1):new 一下就启动一个线程
几年前写过一个c++++的多线程框架,虽然写完了,但是人一懒做了一次说明以后就没影了,最近把代码整理了一下,准备发到github上,在这里,再把这个框架总结一下吧。 多线程一直是编程中常见的问题,特别是在Linux的c++上,多线程的封装一直不是很好,当然,有很多第三方库可以用,比如boost之类的…
-
为 Jenkins 配置 .NET 持续集成环境
去年年底,得益于公司引入 jenkins,让我们在持续集成方面迈出了第一步,本文不赘述如何安装 jenkins,主要关注点在于配置 .net 环境。另外本文是在 windows 环境下安装的 jenkins 进行操作。 一、安装环境 首先我们需要先准备几个安装包,将它们安装到 Windows 上: …
-
从0自学C#01–自绘窗体边框
主要介绍自绘窗体边框和背景颜色逐级变浅(深)。 1.先设置窗体为无边框模式 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 也可以右击窗体,选择属性,找到FormBorderStyler设置为None。此时窗体右上角…
-
从0自学C#02–子线程访问主线程(UI线程)控件
如果使用多线程处理来提高 windows 窗体应用程序的性能,则你必须确保以线程安全的方式调用控件。 访问 Windows 窗体控件不是本身就线程安全的。如果有两个或两个以上线程操作控件的状态,则可能迫使该控件处于不一致状态。可能出现其他与线程相关的 bug,例如争用条件和死锁。请务必确保以线程安全…
-
从0自学C#03–文件流保存数据为txt/excel格式
主要介绍datatable、日志log、文件流filestream、streamwriter类,将数据保存为txt和excel格式。 1.创建TestDataTable类 CreateTable()方法创建一个数据table,SaveTableToExcel(string fileName)方法将数…
-
从0自学C#04–特性和设计原则
1.三大特性 封装:隐藏内部实现。 继承:复用现有代码。 多态:改写对象行为。 2.设计原则 单一职责原则 Single Responsibility Principle(SRP) 一个类仅有一个引起它变化的原因。 开闭原则 Open-Close Principle(OCP) : 类模块应该是可扩展…
-
C#学习日记27—-属性
属性可以是 类(class)、结构(struct)、接口(interface)的命名成员,他提供灵活的机制来读取、写入、或计算私有(private)字段的值,属性可以看作是公共(public)字段的成员,但他实际上是定义了一个“访问器”的特殊方法让私有字段的值可以被读写或操作。 说的形象点吧,…
-
C#学习日记28—索引器、重载索引器
索引器允许类或者结构的实例就像数组一样进行索引,当您为一个类定义一个索引器时,这个类就会像一个数组一样,您可以使用数组访问符 ‘[]’ 对该类的实例进行访问.. 索引器与 属性 类似,但是索引器要采用参数,(也可以这么认为,索引器是一个类的属性,同样也是通过访问器(一种…
-
C#学习日记29—-二维索引器 与 foreach遍历索引器
上一篇结尾的时候我留下了几个问题,因为要断电了没有解决,这一篇我们继续上一篇的内容。点这里回到上一篇 问题1: 数组有多维度的,索引器也可以是多维的吗??? 索引器可以是多维的,上一篇中我们定义的索引器只是一维索引器,同数组一样可以定义多维索引器。比如我们索引电影院…
-
C#学习日记20—-static静态变量 与 常量
在上一篇 委托(delegate)类型 中我定义public方法的时候使用了 static 关键字,导致后来无法通过 对象.方法名 的形式访问此方法,这一篇我们就具体学习下 static 静态变量。 变量: 在学习static静态变量之前,我们还是有必要来了解 变量 的…
-
C#学习日记22—多重继承
继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类来定义一个类,一个类从另一个类派生出来时,派生类从基类那里继承特性 继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物 属于(IS-A) 动物,狗属于(IS-A) 哺乳动物,因此狗 属于(IS…
-
C#学习日记23—多态性 之 运算符重载、方法重载、抽象类、虚方法
在c#中多态性的定义是:同一操作作用于不同类的实例,不同的类进行不同的解释,最后产生不同的执行结果。换句话说也就是 一个接口,多个功能。 C# 支持2种形式的多态性: 编译时的多态性、运行时的多态性 编译时的多态性: 编译时的多态性是通过重载来实现的 方法重载 您可以在同一个范…
-
C#学习日记24—-事件(event)
事件为类和类的实例提供了向外界发送通知的能力,实现了对象与对象之间的通信,如果定义了一个事件成员,表示该类型具有 1.能够在事件中注册方法 (+=操作符实现)。 2.能够在事件中注销方法(-=操作符实现)。 3.当事件被触发时注册的方法会被通知(事件内部维护了一个注册方法列表)。委托(deleg…
-
C#学习日记21—-封装 与 访问修饰符
封装: 被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。也就是把里面实现的细节包起来,这样很复杂的逻辑经过包装之后给别人使用就很方便,别人不需要了解里面是如何实现的,只要传入所需要的参数就可…
