12 2020 档案

摘要:要理解 C# 中的 volatile 关键字,就要先知道编译器背后的一个基本优化原理。比如对于下面这段代码: public class Example { public int x; public void DoWork() { x = 5; var y = x + 10; Debug.WriteL 阅读全文
posted @ 2020-12-31 07:51 MaxBruce 阅读(106) 评论(0) 推荐(0)
摘要:class Program { private static volatile bool bChanged; static void Main(string[] args) { Thread t1 = new Thread(run1); Thread t2 = new Thread(run2); t 阅读全文
posted @ 2020-12-30 22:18 MaxBruce 阅读(208) 评论(0) 推荐(0)
摘要:原文:UWP使用AppService向另一个UWP客户端应用程序提供服务 在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事。于是,我们发现了App Service,两个UWP应用沟通的桥梁。 App Service以backg 阅读全文
posted @ 2020-12-30 00:21 MaxBruce 阅读(194) 评论(0) 推荐(0)
摘要:一、Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以包含多个线程,其中有一个是主线程,其余的是子线程。在WPF或WinForm应用程序中,主线程负责接收 阅读全文
posted @ 2020-12-29 23:46 MaxBruce 阅读(357) 评论(0) 推荐(0)
摘要:在项目中使用Command绑定能够使我们的代码更加的符合MVVM模式。不了解的同学可能不清楚,只有继承自ButtonBase类的元素才可以直接绑定Command(Button、CheckBox、RadioButton等) <Button Content="Normal" Command="{Bind 阅读全文
posted @ 2020-12-29 23:02 MaxBruce 阅读(1224) 评论(0) 推荐(0)
摘要:1 新建WPF 应用程序WPFMVVMExample 程序结构如下图所示。 2 Model实现 在Model文件夹下新建业务类StudentModel(类文件StudentModel.cs),类的详细代码如下所示。 using System.ComponentModel; namespace WPF 阅读全文
posted @ 2020-12-29 22:41 MaxBruce 阅读(200) 评论(0) 推荐(0)
摘要:在 Windows 10 中微软为 UWP 引入了 App Service (即应用服务)这一新特性用以提供应用间交互功能。提供 App Service 的应用能够接收来自其它应用传入的参数进行处理后返回数据。 创建应用服务 要使应用支持提供 App Service 非常简单。只需正确配置应用的清单 阅读全文
posted @ 2020-12-29 07:18 MaxBruce 阅读(641) 评论(0) 推荐(0)
摘要:App Service 是一种背景工作运行的服务,提供给其他Apps 使用就像Web Service。它本身无使用介面(UI-less),允许Apps 在同一个设备被引用,甚至Windows 10 1607 开始允许remote devices 使用它。 [ 重点观念 ] Windows 10, v 阅读全文
posted @ 2020-12-29 07:15 MaxBruce 阅读(495) 评论(0) 推荐(0)
摘要:The Universal Windows Platform (UWP) introduces new mechanisms, which allow the applications to perform some functionality while the application is no 阅读全文
posted @ 2020-12-29 07:01 MaxBruce 阅读(234) 评论(0) 推荐(0)
摘要:在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事。于是,我们发现了App Service,两个UWP应用沟通的桥梁。 App Service以background task 的形式允许一个UWP向其它UWP提供服务。 首先我们 阅读全文
posted @ 2020-12-27 22:46 MaxBruce 阅读(217) 评论(0) 推荐(0)
摘要:本文想通过由浅入深的讲解让读者比较深的理解依赖属性. 首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如下: Public Class A{ Public int Index;//成员变量 Public v 阅读全文
posted @ 2020-12-27 11:55 MaxBruce 阅读(550) 评论(0) 推荐(1)
摘要:在这里讨论依赖属性实现原理,目的只是学习WPF是怎么设计依赖属性的,同时更好的使用依赖属性。 首先我们来思考一个简单的问题:我们希望能验证属性的值是否有效,属性变更时进行自己的处理。回顾一下.net的处理方式 Public Class MyClass{ private int index; Publ 阅读全文
posted @ 2020-12-27 11:52 MaxBruce 阅读(562) 评论(0) 推荐(0)
摘要:引言 本文主要是介绍进程(Process)、应用程序域(AppDomain)、.NET上下文(Context)的概念与操作。虽然在一般的开发当中这三者并不常用,但熟悉三者的关系,深入了解其作用,对提高系统的性能有莫大的帮助。在本篇最后的一节当中将会介绍到三者与线程之间的关系,希望对多线程开发人员能提 阅读全文
posted @ 2020-12-26 11:53 MaxBruce 阅读(252) 评论(0) 推荐(0)
摘要:最近因为工作需要学习WPF方面的知识,因为以前只关注的是B/S架构的东西,可是没想到参加工作的第一个项目竟然是C/S架构的WPF方面的开发,因为Web方面主要是请求响应模型,没有事件这个东西,在学习webform时虽然是基于事件模型的也有没有认真的研究事件,因为它已经逐渐被mvc或者其他方式(比如a 阅读全文
posted @ 2020-12-25 06:47 MaxBruce 阅读(341) 评论(0) 推荐(0)
摘要:在wpf开发中遇到子控件会继承父类控件属性的问题, 例如: <StackPanel Orientation="Horizontal" Grid.Row="1" Background="Black" Opacity="0.3"> <Label Content="{Binding Id}" Foregr 阅读全文
posted @ 2020-12-24 15:52 MaxBruce 阅读(603) 评论(0) 推荐(1)
摘要:前言 谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际上消息是被Post到特定窗口所在线程的消息队列,应用程序的消息循环再不断的从消息队列当中获取消息,然 阅读全文
posted @ 2020-12-24 07:17 MaxBruce 阅读(711) 评论(0) 推荐(0)
摘要:问题背景: 新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上 通过git拉取代码的时候,默认拉取的是master分支,如下图: 拉取指定分支代码解决方案: 以拉取develop分支的代码为例, 要拉取其余分支代码类似操作 阅读全文
posted @ 2020-12-22 13:21 MaxBruce 阅读(2491) 评论(0) 推荐(0)
摘要:github的拉取、提交,创建分支与合并,删除仓库及分支 前期准备: 1、安装git 官网地址:https://git-scm.com/(下载下来,直接下一步) 2、github账号(这有点废话) 3、配置github密钥 下载及安装好git后,右击桌面,找到git Bash Here, 打开输入: 阅读全文
posted @ 2020-12-22 07:52 MaxBruce 阅读(134) 评论(0) 推荐(0)
摘要:二、创建分支并提交代码到分支 上述添加成员的方式非常简单,但是如果说每一个小组成员都可以对仓库push内容,就涉及到一个代码的安全和冲突问题了,当多个成员同时在线编辑时容易出现冲突,假设A的代码是有问题的却push上去了,他的代码可能就导致B的代码执行不了,但如果等代码全部都写完了再一次性提交,又会 阅读全文
posted @ 2020-12-21 23:48 MaxBruce 阅读(2327) 评论(0) 推荐(0)
摘要:DataTemplateSelector可以帮助我们实现动态选择数据绑定的模版,如通过ListView+DataTemplateSelector实现微信朋友圈或聊天列表效果。 Github已有聊天效果图 喜欢阅读代码请直接移步:https://github.com/nishanil/Xamarin. 阅读全文
posted @ 2020-12-21 07:04 MaxBruce 阅读(549) 评论(0) 推荐(0)
摘要:示例 下面的代码示例创建一个信号量,其最大计数为3,初始计数为零。 该示例启动五个线程,这会阻止等待信号量。 主线程使用 Release(Int32) 方法重载将信号量计数增加到其最大值,从而允许三个线程进入信号量。 每个线程使用 Thread.Sleep 方法等待一秒,以模拟工作,然后调用 Rel 阅读全文
posted @ 2020-12-18 18:35 MaxBruce 阅读(206) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-18 07:14 MaxBruce 阅读(58) 评论(0) 推荐(0)
摘要:ninputer在关于“值类型的Finalize不会被调用”中(http://blog.joycode.com/lijianzhong/archive/2005/01/13/42991.aspx#FeedBack)评论到“VB对Finalize管的可松呢,可以直接重写、直接调用、允许不调用父类的Fi 阅读全文
posted @ 2020-12-18 07:11 MaxBruce 阅读(223) 评论(0) 推荐(0)
摘要:一、路由事件与传统事件传统事件的触发者和处理者是紧密相连的,而路由事件则不是,路由事件允许一个元素的事件有另外的元素触发。也即就是说路由事件的拥有者和响应者之间没有显示的订阅关系。事件的拥有者只负责激发事件,事件将由谁处理他们并不知道(可以只引发事件没有响应,但是如果这个在传统事件里面的话是会产生异 阅读全文
posted @ 2020-12-18 00:13 MaxBruce 阅读(450) 评论(0) 推荐(0)
摘要:在上一篇博文中写到了内置路由事件,其实除了内置的路由事件,我们也可以进行自定义路由事件。接下来我们一起来看一下WPF中的自定义路由事件怎么进行创建吧。 创建自定义路由事件分为3个步骤: 1、声明并注册路由事件。 2、利用CLR事件包装路由事件(封装路由事件)。 3、创建可以激发路由事件的方法。 现在 阅读全文
posted @ 2020-12-18 00:08 MaxBruce 阅读(246) 评论(0) 推荐(0)
摘要:<Window x:Class="WpfApplication1.Window26" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win 阅读全文
posted @ 2020-12-18 00:01 MaxBruce 阅读(337) 评论(0) 推荐(0)
摘要:<Window x:Class="WpfApplication1.Window29" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win 阅读全文
posted @ 2020-12-17 23:30 MaxBruce 阅读(463) 评论(0) 推荐(0)
摘要:<Window x:Class="WpfApplication1.Window36" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win 阅读全文
posted @ 2020-12-17 23:06 MaxBruce 阅读(306) 评论(0) 推荐(0)
摘要:<Window x:Class="WpfApplication1.Window38" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win 阅读全文
posted @ 2020-12-17 22:43 MaxBruce 阅读(269) 评论(0) 推荐(0)
摘要:<Window x:Class="WpfApplication1.Window39" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/win 阅读全文
posted @ 2020-12-17 22:32 MaxBruce 阅读(165) 评论(0) 推荐(0)
摘要:App <Application x:Class="WPFDemo.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2 阅读全文
posted @ 2020-12-17 22:17 MaxBruce 阅读(148) 评论(0) 推荐(0)
摘要:一:背景 1. 讲故事 最近发现 C#7 之后的 is 是越来越看不懂了,乍一看花里胡哨的,不过当我静下心来仔细研读,发现这 is 是越来越短小精悍,而且还特别语义化,那怎是一个爽字了得😄,这一篇就和大家简单聊一聊。 二:C#7 之前的 is 如何使用 1. 类型兼容性检测 相信学过 C# 的朋友 阅读全文
posted @ 2020-12-17 14:16 MaxBruce 阅读(179) 评论(0) 推荐(0)
摘要:我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式。 1、完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易这样。比如: // ChooseUc.xaml <UserControl> <StackPanel 阅读全文
posted @ 2020-12-15 23:05 MaxBruce 阅读(1374) 评论(0) 推荐(1)
摘要:我们进行Bingding时,如果明确知道数据源的Name,就能用Source或者ElementName进行绑定,但是有时候我们需要绑定的数据源可能没有明确的Name,此时我们就需要利用Bingding的RelativeSource进行绑定,这种办法的意思是指当前元素和绑定源的位置关系。 (1)控件关 阅读全文
posted @ 2020-12-13 13:00 MaxBruce 阅读(371) 评论(0) 推荐(0)
摘要:在介绍堆排序之前,首先需要说明一下,堆是个什么玩意儿。 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当 阅读全文
posted @ 2020-12-13 11:17 MaxBruce 阅读(823) 评论(0) 推荐(0)
摘要:目录 欢迎关注 正文 哈夫曼树 哈夫曼树也叫最优二叉树(哈夫曼树) 问题:什么是哈夫曼树? 例:将学生的百分制成绩转换为五分制成绩:≥90 分: A,80~89分: B,70~79分: C,60~69分: D,<60分: E。 if (a < 60){ b = 'E'; } else if (a < 阅读全文
posted @ 2020-12-13 11:09 MaxBruce 阅读(760) 评论(0) 推荐(0)
摘要:1.类。结构在使用的时候可以不调用构造函数,如果能够继承类,这种情况下不能够初始化基类,因为不执行构造函数 2.结构。所有的结构类型都默认是 sealed,通过 反汇编可以看到 ,这就阻止了结构被继承,反过来说也就相当于结构不能继承结构 阅读全文
posted @ 2020-12-13 08:45 MaxBruce 阅读(591) 评论(0) 推荐(0)
摘要:3.2.2 使用TypeConverter类将XAML标签的Attribute与对象的Property进行映射注意本小节的例子对于初学者来说理解起来比较困难而且实用性不大,主要是为喜欢刨根问底的WPF程序员准备的,初学者可以跳过这一小节。首先,我们准备了一个类: 这个类具有两个属性: ● strin 阅读全文
posted @ 2020-12-12 15:48 MaxBruce 阅读(238) 评论(0) 推荐(0)
摘要:/// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : Application { private const string Tag = nameof(App); public App() { Dispat 阅读全文
posted @ 2020-12-12 15:14 MaxBruce 阅读(333) 评论(0) 推荐(0)
摘要:本主题概述如何使用 Shape 对象绘图。 Shape 是一种允许您在屏幕中绘制形状的 UIElement 类型。 由于它们是 UI 元素,因此 Shape 对象可以在 Panel 元素和大多数控件中使用。 Windows Presentation Foundation (WPF) 提供了对图形和呈 阅读全文
posted @ 2020-12-12 12:06 MaxBruce 阅读(566) 评论(0) 推荐(0)
摘要:在实际工作中,WPF提供的控件并不能完全满足不同的设计需求。这时,需要我们设计自定义控件。 这里LZ总结一些自己的思路,特性如下: Coupling UITemplate Behaviour Function Package 下面举例说说在项目中我们经常用到调音台音量条,写一个自定义控件模拟调音台音 阅读全文
posted @ 2020-12-12 11:45 MaxBruce 阅读(1056) 评论(0) 推荐(0)
摘要:转载自:http://www.cnblogs.com/shanlin/p/3954531.html WPF系列自然需要以一个实际项目为结束。这里分享一个博客园博客实现的一个项目,我觉得作为一个练手的项目非常合适。担心博主后期会删除什么,这里先备份在自己的博客里面分享给大家。 本文所有源码下载:Tas 阅读全文
posted @ 2020-12-12 11:04 MaxBruce 阅读(240) 评论(0) 推荐(0)
摘要:一、引言 在前面介绍了WPF一些核心的内容,其中包括WPF布局、依赖属性、路由事件、绑定、命令、资源样式和模板。然而,在WPF还衍生出了一种很好的编程框架,即WVVM,在Web端开发有MVC,在WPF客户端开发中有MVVM,其中VM就相当于MVC中C(Control)。在Web端,微软开发了Asp. 阅读全文
posted @ 2020-12-12 11:02 MaxBruce 阅读(680) 评论(0) 推荐(1)
摘要:示例代码:TreeViewEx.zip 原文地址:http://www.codeproject.com/Tips/673071/WPF-TreeView-with-WinForms-Style-Fomat Introduction WPF default TreeView is very good, 阅读全文
posted @ 2020-12-12 11:01 MaxBruce 阅读(433) 评论(0) 推荐(0)
摘要:一、引言 模板从字面意思理解是“具有一定规格的样板"。在现实生活中,砖块都是方方正正的,那是因为制作砖块的模板是方方正正的,如果我们使模板为圆形的话,则制作出来的砖块就是圆形的,此时我们并不能说圆形的”砖块“不是砖块吧。因为形状只是它们的外观,其制作材料还是一样的。所以,模板可以理解为表现形式。WP 阅读全文
posted @ 2020-12-12 10:56 MaxBruce 阅读(436) 评论(0) 推荐(0)
摘要:一、引言 WPF资源系统可以用来保存一些公有对象和样式,从而实现重用这些对象和样式的作用。而WPF样式是重用元素的格式的重要手段,可以理解样式就如CSS一样,尽管我们可以在每个控件中定义格式,但是如果多个控件都应用了多个格式的时候,我们就可以把这些格式封装成格式,然后在资源中定义这个格式,之前如果用 阅读全文
posted @ 2020-12-12 10:55 MaxBruce 阅读(233) 评论(0) 推荐(0)
摘要:一、引言 WPF命令相对来说是一个崭新的概念,因为命令对于之前的WinForm根本没有实现这个概念,但是这并不影响我们学习WPF命令,因为设计模式中有命令模式,关于命令模式可以参考我设计模式的博文:http://www.cnblogs.com/zhili/p/CommandPattern.html。 阅读全文
posted @ 2020-12-12 10:52 MaxBruce 阅读(455) 评论(0) 推荐(0)
摘要:一、引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能。WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信息来设置目标对象的属性。目标属性总是依赖属性。然而,源对象可以是任何内容,可以是一个WPF元素、或A 阅读全文
posted @ 2020-12-12 10:44 MaxBruce 阅读(422) 评论(0) 推荐(1)
摘要:一、引言 WPF除了创建了一个新的依赖属性系统之外,还用更高级的路由事件功能替换了普通的.NET事件。 路由事件是具有更强传播能力的事件——它可以在元素树上向上冒泡和向下隧道传播,并且沿着传播路径被事件处理程序处理。与依赖属性一样,可以使用传统的事件方式使用路由事件。尽管路由事件的使用方式与传统的事 阅读全文
posted @ 2020-12-12 10:23 MaxBruce 阅读(513) 评论(0) 推荐(1)
摘要:一、引言 感觉最近都颓废了,好久没有学习写博文了,出于负罪感,今天强烈逼迫自己开始更新WPF系列。尽管最近看到一篇WPF技术是否老矣的文章,但是还是不能阻止我系统学习WPF。今天继续分享WPF中一个最重要的知识点——依赖属性。 二、依赖属性的全面解析 听到依赖属性,自然联想到C#中属性的概念。C#中 阅读全文
posted @ 2020-12-12 10:14 MaxBruce 阅读(308) 评论(0) 推荐(0)
摘要:一、引言 关于WPF早在一年前就已经看过《深入浅出WPF》这本书,当时看完之后由于没有做笔记,以至于我现在又重新捡起来并记录下学习的过程,本系列将是一个WPF快速入门系列,主要介绍WPF中主要的几个不同的特性,如依赖属性、命令、路由事件等。 在正式介绍之前,我还想分享下为什么我又要重新捡起来WPF呢 阅读全文
posted @ 2020-12-12 10:09 MaxBruce 阅读(1037) 评论(0) 推荐(0)
摘要:WPF相较于以前学的WinForm,WPF在UI设计与动画方面的炫丽是最吸引我来学习的。在WPF中XMAL代码的引入使得代码的编写能够前后端分离,为获得更好的界面,也使得我们不得不分出一半的时间花在前端代码的编写上(虽然微软提供了Blend for Visual Studio这样的设计软件,但我认为 阅读全文
posted @ 2020-12-11 09:15 MaxBruce 阅读(393) 评论(0) 推荐(0)
摘要:内存泄漏定义(memory leak):一个不再被程序使用的对象或变量还在内存中占有存储空间。 一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。内存溢出 out of memory :指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但 阅读全文
posted @ 2020-12-10 13:39 MaxBruce 阅读(151) 评论(0) 推荐(0)
摘要:内存泄漏定义(memory leak):一个不再被程序使用的对象或变量还在内存中占有存储空间。 一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。内存溢出 out of memory :指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但 阅读全文
posted @ 2020-12-10 13:36 MaxBruce 阅读(400) 评论(0) 推荐(0)
摘要:在多线程环境中,多个线程可能会同时访问同一个资源,为了避免访问发生冲突,可以根据访问的复杂程度采取不同的措施 原子操作适用于简单的单个操作,无锁算法适用于相对简单的一连串操作,而线程锁适用于复杂的一连串操作 原子操作 修改状态要么成功且状态改变,要么失败且状态不变,并且外部只能观察到修改前或者修改后 阅读全文
posted @ 2020-12-10 10:57 MaxBruce 阅读(663) 评论(0) 推荐(0)
摘要:GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的dll的地方。GAC的具体目录在windows/ assembly。 喜欢使用破解软件的朋友可能会经常使用替换DLL这招,这个DLL虽然和.net下面的DLL有所不同,但大致起的作用还是一样的 阅读全文
posted @ 2020-12-10 09:10 MaxBruce 阅读(639) 评论(0) 推荐(0)
摘要:摘要:本文介绍Linq查询基本操作(查询关键字) - from 子句 - where 子句 - select子句 - group 子句 - into 子句 - orderby 子句 - join 子句 - let 子句 - 复合from子句 - 在某些情况下,源序列中的每个元素本身可能是序列(集合) 阅读全文
posted @ 2020-12-10 07:28 MaxBruce 阅读(852) 评论(0) 推荐(0)
摘要:一、附加属性的特点1、特殊的依赖属性2、用于非定义该属性的类 例如Grid面板的RowDefinition、ColumnDefinition、Canvas面板的Left、RightDockPanel面板的Dock都是附加属性。 二、附加属性的定义 1、声明数据属性变量。 public static 阅读全文
posted @ 2020-12-09 21:51 MaxBruce 阅读(345) 评论(0) 推荐(0)
摘要:一、什么是依赖属性 依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值。依赖属性可支持WPF中的样式设置、数据绑定、继承、动画及默认值。 将所有的属性都设置为依赖属性并不总是正确的解决方案,具体取决于其应用场景。有时,使用私有字段实现属性的典型方法便能满足要求。MSDN中给出了下面几 阅读全文
posted @ 2020-12-09 21:01 MaxBruce 阅读(293) 评论(0) 推荐(0)
摘要:1.什么是hash算法Hash(散列、杂凑)算法,是把任意长度的输入通过特定的算法变换成固定长度的输出,输出的值就是hash值。这个特定的算法就叫hash算法,hash算法并不是一个固定不变的算法。只要是能达到这个目的的算法都可以说hash算法。例如MD5,SHA,String.hashcode() 阅读全文
posted @ 2020-12-09 16:40 MaxBruce 阅读(600) 评论(0) 推荐(0)
摘要:1. 概述 上次讨论了HashMap的结构,原理和实现,本文来对Map家族的另外一个常用集合HashTable进行介绍。HashTable和HashMap两种集合非常相似,经常被各种面试官问到两者的区别。 对于两者的区别,主要有以下几点: HashMap是非同步的,没有对读写等操作进行锁保护,所以是 阅读全文
posted @ 2020-12-09 16:39 MaxBruce 阅读(259) 评论(0) 推荐(0)
摘要:首先如果hashcode相等的话,这两个类也是不一定相等的,如果是反过来的话(通常情况下,如果两个对象的内容相同,两个对象的hashcode也是相同的) hashcode()和equals()的关系: (1)如果不创建“类对应的散列表的话”(就是当我们不会把一个类放到在HashSet, Hashta 阅读全文
posted @ 2020-12-09 16:33 MaxBruce 阅读(1128) 评论(0) 推荐(0)
摘要:悬赏园豆:20 [已解决问题] 浏览: 1763次 解决于 2018-08-15 22:43 今天有点疑惑就写了个测试的代码,发现控制台和Winform中不一样 比如: 控制台: ...Main(){ Test(); } private static async void Test(){Show(" 阅读全文
posted @ 2020-12-09 13:16 MaxBruce 阅读(1170) 评论(0) 推荐(0)
摘要:N=根号N*根号NN的因数除了根号N,其他都是成对存在的, 且必定一个大于根号N一个小于根号N假设N不是质数,有个因数大于根号N(不是N本身) 则N必定有一个与之对应的小于根号N的因数也就是说,如果2到根号N都没有N的因数, 那么对应的根号N到N-1都没有N的因数,N就是个质数 阅读全文
posted @ 2020-12-08 20:29 MaxBruce 阅读(906) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-08 10:51 MaxBruce 阅读(130) 评论(0) 推荐(0)
摘要:元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和引用的 阅读全文
posted @ 2020-12-08 09:34 MaxBruce 阅读(218) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-08 08:36 MaxBruce 阅读(247) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-07 22:46 MaxBruce 阅读(81) 评论(0) 推荐(0)
摘要:一、 构造函数是干什么的 class Counter { public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类型 Counter() { m_value = 0; } private: // 数据成员 int m_value; } 该类对象被创建时,编译系统对象分 阅读全文
posted @ 2020-12-07 20:32 MaxBruce 阅读(362) 评论(0) 推荐(0)
摘要:有如下一个简单的复数类: class ClxComplex{public : ClxComplex( double dReal = 0.0 , double dImage = 0.0 ) { m_dReal = dReal; dImage = dImage; } double GetReal() c 阅读全文
posted @ 2020-12-07 20:30 MaxBruce 阅读(207) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;class User{ public: int age; int number; User() { cout << "this is User contructor\r\n"; } User& operator=(cons 阅读全文
posted @ 2020-12-07 20:15 MaxBruce 阅读(202) 评论(0) 推荐(0)
摘要:join 操作 阅读全文
posted @ 2020-12-07 17:04 MaxBruce 阅读(92) 评论(0) 推荐(0)
摘要:对于常规的Web攻击手段,如XSS、CRSF、SQL注入、(常规的不包括文件上传漏洞、DDoS攻击)等,防范措施相对来说比较容易,对症下药即可,比如XSS的防范需要转义掉输入的尖括号,防止CRSF攻击需要将cookie设置为httponly,以及增加session相关的Hash token码 ,SQ 阅读全文
posted @ 2020-12-07 11:31 MaxBruce 阅读(233) 评论(0) 推荐(0)
摘要:视图的查找 asp.net MVC 不需要用using 释放资源 阅读全文
posted @ 2020-12-07 11:28 MaxBruce 阅读(65) 评论(0) 推荐(0)
摘要:1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes);说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存 阅读全文
posted @ 2020-12-07 08:30 MaxBruce 阅读(221) 评论(0) 推荐(0)
摘要:1. 申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。 自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存 阅读全文
posted @ 2020-12-07 08:22 MaxBruce 阅读(222) 评论(0) 推荐(1)
摘要:#include <iostream>using namespace std;class user{ public: int age; int number; void test() { printf("this is user test function \t"); } virtual void 阅读全文
posted @ 2020-12-07 07:54 MaxBruce 阅读(326) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-05 19:38 MaxBruce 阅读(92) 评论(0) 推荐(0)
摘要:一,锁定机制最简单的做法就是使用锁定关键字Lock。Lock关键字英文中就是锁的意思,顾名思义就是为操作加上一把锁。它的语法如下: lock(lockObj){//加锁的代码段,一般是操作共同资源的代码} 二、同步方法(synchronized) 案例代码: using System; using  阅读全文
posted @ 2020-12-05 19:24 MaxBruce 阅读(6470) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-05 17:31 MaxBruce 阅读(61) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-05 16:32 MaxBruce 阅读(100) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-12-04 13:58 MaxBruce 阅读(53) 评论(0) 推荐(0)
摘要:先来段代码,如下: static void Main(string[] args) { string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' }); string b = new string(new char[] { 'h', 'e' 阅读全文
posted @ 2020-12-04 12:53 MaxBruce 阅读(186) 评论(0) 推荐(0)
摘要:static的作用: 对变量: 1.局部变量: 在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。 1)内存中的位置:静态存储区 2)初始化:局部的静态变量只能被初始化一次,且C中不可以用变量对其初始化,而C++可以用变量对其初始化。(详见:http://www.cnblo 阅读全文
posted @ 2020-12-04 12:21 MaxBruce 阅读(378) 评论(0) 推荐(0)
摘要:static静态的,不变的,在某个类中只有一个,不会因实例化对象的不同而不同。static可以修饰类、字段、属性、方法等。如一个方法前加上static修饰后要对其进行调用可以直接通过类名点出来,不用再对类进行实例化。 一、静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 n 阅读全文
posted @ 2020-12-04 11:30 MaxBruce 阅读(2569) 评论(0) 推荐(1)
摘要: 阅读全文
posted @ 2020-12-04 11:11 MaxBruce 阅读(136) 评论(0) 推荐(0)
摘要:namespace ConsoleDemo{ class Program { static void Main(string[] args) { string[] str = { "1", "1", "1", "1", "1", "1", "1", "1" }; var m = getInts(st 阅读全文
posted @ 2020-12-03 21:09 MaxBruce 阅读(70) 评论(0) 推荐(0)
摘要:namespace 异步编程{ class Program { static void Main(string[] args) { Console.WriteLine("mian this is async{0}", Thread.CurrentThread.ManagedThreadId); Do 阅读全文
posted @ 2020-12-03 20:51 MaxBruce 阅读(66) 评论(0) 推荐(0)
摘要:对于yield关键字我们首先看一下msdn的解释: 如果你在语句中使用 yield 关键字,则意味着它在其中出现的方法、运算符或 get 访问器是迭代器。 通过使用 yield 定义迭代器,可在实现自定义集合类型的 IEnumerable 和 IEnumerator 模式时无需其他显式类(保留枚举状 阅读全文
posted @ 2020-12-03 11:46 MaxBruce 阅读(152) 评论(0) 推荐(0)
摘要:理解: 1、async修饰的方法可理解为异步方法(必须要配合await,否则和普通方法无异)2、当async方法执行遇到await,则立即将控制权转移到async方法的调用者3、由调用者决定是否需要等待async方法执行完再继续往下执行4、await会挂起当前方法,即阻塞当前方法继续往下执行,转交控 阅读全文
posted @ 2020-12-03 10:09 MaxBruce 阅读(642) 评论(0) 推荐(0)
摘要:一、final、finally与finalize的区别 final:final是一个修饰符,可以修饰类,方法和变量。final修饰类表示类不能被其它类继承,并且该类中的所有方法都会隐式的被final修饰。final修饰方法,则该方法不能被重写,若父类中final方法的访问权限为private,将导致 阅读全文
posted @ 2020-12-02 19:27 MaxBruce 阅读(633) 评论(0) 推荐(0)
摘要:写在前面 在开始之前,我们需要明确什么是C#(或者说.NET)中的资源,打码的时候我们经常说释放资源,那么到底什么是资源,简单来讲,C#中的每一种类型都是一种资源,而资源又分为托管资源和非托管资源,那这又是什么?! 托管资源:由CLR管理分配和释放的资源,也就是我们直接new出来的对象; 非托管资源 阅读全文
posted @ 2020-12-02 18:53 MaxBruce 阅读(208) 评论(0) 推荐(0)
摘要:1.using指令 using+命名空间,这种方法基本学习过C#的都用过,好处在于,写代码的时候不需要指定详细的命名空间 using System.Windows.Media; using System.Windows.Media.Imaging; 2.using语句 是用来简化资源释放的,在一定的 阅读全文
posted @ 2020-12-02 18:50 MaxBruce 阅读(1795) 评论(0) 推荐(0)
摘要:集合相当于容器,用于将一系列相似的项组合在一起。 集合可以分为泛型集合类和非泛型集合类。 多数集合类都是派生自ICollection、IComparer、IEnumerable、IList、IDictionary和IDictionaryEnumerator接口以及它们的等效泛型接口,可继承这些接口来 阅读全文
posted @ 2020-12-02 14:23 MaxBruce 阅读(276) 评论(0) 推荐(0)
摘要:今天帮助同事做了一个WPF版的多线程demo,分享给大家。 要实现的问题就是非主线程thread1 去后台不停的取新数据,当有新数据的时候就会展示到前台。 我给他做的demo实现一个按秒的计数器,随着时间然后每秒数据加1, 这个demo涉及到的点有 多线程,垮线程更改控件的值Dispatcher的使 阅读全文
posted @ 2020-12-02 14:18 MaxBruce 阅读(185) 评论(0) 推荐(0)
摘要:GC的前世与今生 虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。但后来的日子里L 阅读全文
posted @ 2020-12-02 11:04 MaxBruce 阅读(410) 评论(0) 推荐(0)
摘要:一直以来都很少使用sql中的with语句,但是看到了一篇文章中关于with的使用,它的确蛮好用,希望以后记得使用这个语句。一、with 的用法With alias_name as (select1)[,alias_namen as (select n) ]--中括号可以省略Select ….举例,如 阅读全文
posted @ 2020-12-01 23:37 MaxBruce 阅读(1548) 评论(0) 推荐(0)
摘要:四、联接操作符 联接是指将一个数据源对象与另一个数据源对象进行关联或者联合的操作。这两个数据源对象通过一个共同的值或者属性进行关联。 LINQ有两个联接操作符:Join和GroupJoin。 1. Join Join操作符类似于T-SQL中的inner join,它将两个数据源相联接,根据两个数据源 阅读全文
posted @ 2020-12-01 14:48 MaxBruce 阅读(461) 评论(0) 推荐(0)
摘要:where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。 1.接口约束。 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable<T> 接口: public class MyGenericClass<T> where 阅读全文
posted @ 2020-12-01 07:48 MaxBruce 阅读(666) 评论(0) 推荐(0)