摘要 委托是C#编程一个非常重要的概念,也是一个难点。本文将系统详细讲解委托。 1. 委托是什么? 其实,我一直思考如何讲解委托,才能把委托说得更透彻。说实话,每个人都委托都有不同的见解,因为看问题的角度不同。个人认为,可以从以下2点...
1. 委托 委托类似于C++中的函数指针(一个指向内存位置的指针)。委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针。简单理解,委托是一种可以把函数当做参数传递的类型。很多情况下,某个函数需要动态地去调用某一类函数,这时...
第一种方法: 用.NET中的 Sytem.Guid.NewGuid().ToString() 生成,实际上是对一个128bit数字的十六进制输出. 生成的字符由0-9和a-z这几种字符组成,也可能会有“-”字符分割. string strNewPW = System.Guid.NewGuid().ToString(); 结果可能会...
通过上篇文章知道了EXE文件的结构,现在来看看双击后是怎样运行的: 双击文件后OS Loader加载PE文件并解析,在PE Optional Header里找到基地址和RVA,通过这两个确定了程序的入口地址,这个地址指向MsCorEE.dll的_CorExeMain(),执行它。_CorExeMai...
.net平台中的CLR 首先要说明的是,.NET平台与C#不是一回事 它是C#,VB.net等程序运行的平台。 CLR是公共语言运行时,是 .NET Framework的重要组成部分。它提供了内存管理、线程管理和异常处理等服务,而且还负责对代码实施严格的类型安全检查,保...
刚到新单位,学习他们的源代码,代码里读写系统配置文件的XML代码比较老套,直接写在一个系统配置类里,没有进行类的拆分,造成类很庞大,同时,操作XML的读写操作都是使用SetAttribute和node.Attribute(name)方法,因此,想到结合之前所做的XML操作,...
一、简介 首先来看看.net的发展中的各个阶段的特性:NET 与C# 的每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#4.5异步编程 下面我来简单的介绍一下异步编程:异步编程,在 .NET Framework 4.5 和...
类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象...
1、通过实体类来传递(可以传递多个参数与获取返回值),demo如下: 需要在线程中调用的函数:namespace ThreadParameterDemo{public class FunctionClass{public static string TestFunction(string name, int age){//内部处理省略return name + "...
ASP.NET Core 1.0 是 ASP.NET 的完全重新编写,这个新框架的主要目标之一就是更多的模块化设计。即,应用应该能够仅利用其所需的框架部分,方法是框架在它们请求时提供依赖关系。此外,使用 ASP.NET Core 构建应用的开发人员应该能够利用这一相同功能保...
一、前言 近来利用空闲时间研究了一下Xamarin的技术,想想既然提供了如此好的支持,就该尝试一切可能,来一个”大小通吃“。 何为全平台:APP包括Android、IOS、WP,WEB可在Window和Linux部署运行(进可攻,退可守) 二、简单实现 先来看张图...
一、设计目的 从事.Net平台开发系统已有8年多了,一直思考搭建.Net分布式系统架构。基于window平台搭建的大型分布式系统不多,之前了解过myspace、stackoverflow等大型网站。搭建一个大型平台需要综合考虑很多方面,不单纯是软件架构,还包括网络和...
在ASP.net MVC 中有几种下载文件的方法 第一种:最简单的超链接方法,<a>标签的href直接指向目标文件地址,这样容易暴露地址造成盗链,这里就不说了 第二种:后台下载 在后台下载中又可以细分为几种下载方式 首先,在前台,我们需要...
.NET Core 跨平台发布(dotnet publish) ,无需安装.NET Core SDK,就可以运行。前面讲解了.NET Core 的VSCode 开发。现在来讲讲发布(dotnet publish)。 .NET Core and ASP.NET Core 1.0 RC2 runtime and libraries 在五月中旬发布。.NET Core and A...
下面的代码起到这样一个作用: 如果有flow.txt文件,则打开该文件,在文件中继续写入字符串; 如果没有该文件,则创建该文件并写入。#include<string>#include<fstream>#include <iostream>std::ofstream file;if (file.bad()...
//C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试//c++:HANDLE(void *) ---- c#:System.IntPtr//c++:Byte(unsigned char) ---- c#:System.Byte//c++:SHORT(short) ---- c#:System.Int16//c++:WORD(unsigned short) --...
背景 多线程编程是C++开发者的一个基本功, 但是很多开发者都是直接使用公司给包装好的线程池库, 没有去了解具体实现,有些实现也都因为高度优化而写得讳莫如深,让初学者看得吃力。 所以写这篇文章主要是想以非常简单的方式讲讲实现原理, 希望...
从概念上看,值类型直接存储其值,而引用类型存储对其值的引用。 我们知道,C#中的每一种类型要么是值类型,要么是引用类型。所以每个对象要么是值类型的实例,要么是引用类型的实例。 值类型和引用类型的基类 引用类型和值类型都继承自Syste...
虽然python开发效率很高,但作为脚本语言,其性能不高,所以为了兼顾开发效率和性能,通常把性能要求高的模块用c或c++来实现或者在c或c++中运行python脚本来处理逻辑,前者通常是python中一些模块的实现方式,后者服务端程序(实现业务扩展或是Plugin功...
1. 起因 某天,一个同事跟我反馈说在windows上调试公司产品的一个交易核心时出现了使用未初始化的指针导致后台服务崩溃的情况。示例代码如下所示:struct sample{int* ptr_table[4][4];//... other members};void test(){sample* sample_ptr = new ...