- 博客(49)
- 资源 (37)
- 收藏
- 关注
原创 C#学习 - 关于Task的几种用法
1. 使用Task Factory创建 var tf = new TaskFactory(); var t1 = tf.StartNew(TaskMethod, "using a task factory"); 2. 使用new Task() var t3 = new Task(TaskMethod, "using task con...
2018-03-30 22:59:37 10067
原创 C#学习 - 用Lambda表达式来构造一个递归函数
Lambda表达式来构造一个递归函数”的难点是因为“我们正在构造的东西是没有名字的”,因此“我们无法调用自身”。那么,如果我们换种写法,把我们正在调用的匿名函数作为参数传给自己,那么就可以在匿名函数的方法体中,通过调用参数来调用自身了。下面举例说明用Lambda实现斐波那契第一种方法:声明一个delegate /// <summary> /// 在这里声明...
2018-03-14 16:32:33 1459
转载 C#学习 - Net Framework,Net Core 和 Net Standard 区别
Net Framework,Net Core 和 Net Standard 区别原文链接:Net Framework,Net Core 和 Net Standard 区别 - 乐途 - 博客园 (cnblogs.com)
2021-03-24 10:46:06 258
原创 C#学习 - CsvHelper
CsvHelper可以方便的处理Csv文件, CsvHelper可以从NuGet上下载用法示例1: var table = new DataTable(); var csvFile = Directory.GetCurrentDirectory() + @"\test.csv"; Dictionary<string, Type> TypeMappings = new Dictionary<strin...
2020-10-29 16:21:18 2617 1
原创 C#学习 - Where 和 TakeWhile的区别
TakeWhile:stop until the condition is false, the remaining elements are skippedWhere:continues and find all elements matching the condition举例说明: var intList = new int[] { 1, 2, 3, 4, 5, -1, -2 }; Console.WriteLine("Where");..
2020-10-29 16:04:49 1055
转载 C#对象的初始化顺序
当构造一个c#对象时,理解对象的字段和构造函数的顺序是非常重要的:Derived static fields//派生类静态字段 Derived static constructor//派生来静态构造函数 Derived instance fields//派生类实例字段 Base static fields//基类静态字段 Base static constructor//基类静态构造函数 Base instance fields//基类实例字段 Base instance construct
2020-07-21 11:40:58 321
原创 C# 学习 - & 和 && 的区别
逻辑 AND 运算符 &&运算符计算操作数的逻辑与。如果x和y的计算结果都为true,则x & y的结果为true。否则,结果为false。即使左侧操作数计算结果为false,&运算符也会计算这两个操作数,而在这种情况下,无论右侧操作数的值为何,运算结果都为false。条件逻辑 AND 运算符 &&条件逻辑与运算符&&(亦称为“短路”逻辑与运算符)计算操作数的逻辑与。如果x和y的计...
2020-07-03 13:00:55 621
原创 Octave - 多项式求积分和微分
多项式如下上述多项式,在Octave中,可以用以下向量表示其系数>> c = [ 2 10.1 0 6]c = 2.00000 10.10000 0.00000 6.00000求积分函数>> polyint(c)ans = 0.50000 3.36667 0.00000 6.00000 0.0...
2019-05-29 15:24:15 2792
原创 Octave - 由IQ数据计算功率谱
load "C:\\Users\\guest\\Desktop\\Octave\\IQ_Data.csv";I_data = C__Users_guest_Desktop_Octave_IQ_Data(:,1);Q_data = C__Users_guest_Desktop_Octave_IQ_Data(:,2);# 采样率307200sampling_rate = 307200n...
2019-05-28 16:29:35 4935 2
原创 用VS自带的dumpbin.exe工具查看DLL
从程序菜单启动 Developer Command Prompt for VS2015运行dumpbin可以开到帮助文档常用: dumpbin /exports <dllFile>
2018-11-21 17:38:42 1682 1
原创 C#学习 - .Net调用C++写的DLL库
1. Create a C++ Win32 Console Application2. 在新建的工程中添加头文件CppDll.h,内容如下#pragma once#ifdef CPPDLL_EXPORTS #define CPPDLL_EXPORTS __declspec(dllexport) #else #define CPPDLL_EXPORTS __dec...
2018-09-12 10:58:28 4709
原创 C#学习 - 接口和实现用不同DLL的意义
为了保证实现部分代码的变化不需要重新编译应用程序,一种可以采用的方法是:将设计的library分为2个dll,1. 一部分为公共接口dll,这个dll被外部应用工程引用。2. 另一部分为接口的实现部分。在第一部分项目中,实现工厂类,并采用动态加载的方式将第二部分的dll加载并实例化。用这个方法,如果某应用需要调用library,只需要引用第一个dll,即接口dll。而接口实现的...
2018-08-09 15:20:17 1286
原创 R语言学习 - 矩阵的N次方
发现R里面居然没有矩阵的N次内积函数,网上抄了一个能用的,学习一下"%^%" <- function(mat, pow) { if (!is.matrix(mat)) mat <- as.matrix(mat) stopifnot(!diff(dim(mat))) if (pow < 0) { pow <- -pow mat <- solv...
2018-07-09 17:04:14 14841 1
原创 R语言学习 - 如何用plot将两个图重叠
例如实现如下正态分布函数的图形m <- 0sigma <- 1t <- seq(-10,10,by=0.1)n1 <- 1 / sqrt(2 * pi * sigma) * exp(-(t - m)^2/(2*sigma) )plot(t,n1)par(new=TRUE)sigma <- 2n2 <- 1 / sqrt(2 * pi * sigma...
2018-07-09 11:57:01 43426
原创 R语言学习 - 由I/Q数据得到频谱
idata和qdata是从excel表中导出的数据plotFFT <- function(idata, qdata){ sample_rate <- 1.6e9; idata <- data.matrix(idata); qdata <- data.matrix(qdata); num_samples <- dim(idata)[1]; x &l...
2018-07-09 09:45:58 2914
原创 C#学习 - LINQ使用
下面的代码通过反射获取Server类下所有方法,并将带有InterceptAttribute的方法及其Intercept属性保存在Dictionary中。 Assembly ass = Assembly.GetAssembly(typeof(Server)); Type t = ass.GetType("MyServer.Server"); ...
2018-07-05 13:59:16 246
原创 C#学习 - 关于懒汉式和饿汉式单例
1. Eager Singleton(饿汉式单例类),其静态成员在类加载时就被初始化,此时类的私有构造函数被调用,单例类的唯一实例就被创建。 class EagerSingleton { private static EagerSingleton instance = new EagerSingleton(); pri...
2018-06-22 15:35:05 1116
原创 C学习 - SHA256算法的实现
1. Sha2.h/** * \file sha2.h * * \brief SHA-224 and SHA-256 cryptographic hash function * * Copyright (C) 2006-2010, Brainspark B.V. * * This file is part of PolarSSL (http://www.polars...
2018-06-12 16:57:03 2592 1
原创 C学习 - 可变参数用法 (关于va_start,va_end和va_list)
如下例子展示如何使用va_start,va_end,va_list:#include <stdarg.h>int dbg_printf( const char * format, ... ){ va_list ap; int ret; va_start (ap, format); ret = printf( format, ap ); ...
2018-06-12 16:48:32 259
原创 C学习 - Rijndael加密算法实现(linux)
Linux下Rijndael 算法的C实现typedef unsigned char u8;/*-------------------- Rijndael round subkeys ---------------------*/u8 roundKeys[11][4][4];/*--------------------- Rijndael S box table ------------...
2018-06-12 16:39:53 655
原创 C学习 - Kasumi F8/F9算法实现
Linux上的可运行代码,废话不说,直接上C源码1. f8.c/*------------------------------------------------------------------- * F8 - Confidentiality Algorithm *------------------------------------------------------------...
2018-06-12 16:32:50 2359 11
原创 C学习 - Linux下的Tcp Client
#include <stdio.h>#include <stdlib.h>#include <netinet/in.h>#include <string.h>#define SERVER_PORT_NUM 5025#define SERVER_IP_ADDR "146.208.235.229"#define ERROR -1#defi...
2018-06-12 16:12:44 1964
原创 C学习 - Linux下的Tcp Server
#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <signal.h>#include <string.h>#include <netinet/in.h>#include <stdio.h>#include
2018-06-12 13:20:02 1585
原创 C#学习 - 关于Thread.Yield()和Thread.Sleep()
1. Thread.Yield()该方法是在 .Net 4.0 中推出的新方法,它对应的底层方法是 SwitchToThread。Yield 的中文翻译为 “屈服,让步”,这里意思是主动放弃当前线程的时间片,并让操作系统调度其它就绪态的线程使用一个时间片。但是如果调用 Yield,只是把当前线程放入到就绪队列中,而不是阻塞队列。如果没有找到其它就绪态的线程,则当前线程继续运行。Yield可以让低于...
2018-06-06 10:40:02 4104
原创 C#学习 - 关于AutoResetEvent和ManualResetEvent
在.Net多线程编程中,AutoResetEvent 和 ManualResetEvent 这两个类经常用到,他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset()方法将信号置为不发送状态,WaitOne()等待信号的发送。可以通过构造函数的参数值来决定其初始状态,若为true则非阻塞状态,为false为阻塞状态。如果某个线程调用WaitOne()方法,则当信号处于发送状态时,...
2018-06-05 17:34:55 364
原创 C#学习 - 关于Nullable
1. Nullable<T>和T?可以为 null 的类型可表示一个基础类型的所有值,还可以再表示一个 null 值。 可通过以下两种方式之一声明可为 null 的类型:Nullable<T> variable 或 T? variable(c#的语法糖衣)。例如:Nullable<int> a 与 int? a 等效,都表示声明一个可以为空值的整型变量a。2...
2018-06-05 11:46:06 160
原创 C#学习- 关于lock,mutex和semephore
C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。lock是一种比较简单的线程同步方式,它是通过为给定...
2018-06-04 11:20:57 2948
转载 C#学习 - 关于析构函数,Dispose,和Close
转自 https://blog.csdn.net/lianchangshuai/article/details/9501781C# 中的析构函数实际上是重写了 SystemFinalize.Object 中的虚方法 Finalize三种最常的方法如下: 1. 析构函数;(由GC调用,不确定什么时候会调用) 2. 继承IDisposable接口,实现Dispose方法;(可以手动调用。比如数据库...
2018-05-31 10:40:48 1020
原创 C#学习 - 如何自动删除应用程序创建的临时文件
直接上代码using System;using System.IO;sealed class TempFile : IDisposable{ string path; public TempFile() : this(System.IO.Path.GetTempFileName()) { } public TempFile(string path) { ...
2018-05-31 10:16:54 2373
原创 C#学习 - 关于Interlocked.CompareExchange()的用法
Interlocked.CompareExchange有一组函数 名称说明CompareExchange(Double, Double, Double)比较两个双精度浮点数是否相等,如果相等,则替换第一个值。CompareExchange(Int32, Int32, Int32)比较两个 32 位有符号整数是否相等,如果相等,则替换第一个值。CompareExchange(Int64, Int64...
2018-05-28 17:50:01 14173
原创 C#学习- 用FTP(FtpWebRequest/FtpWebResponse)传输文件
废话不说,直接上代码,一目了然 class FtpClient { private string host = null; private string user = null; private string pass = null; private FtpWebRequest ftpRequest = null; ...
2018-05-25 11:48:14 10897 1
原创 C#学习 - XML Serialization
将一个对象序列化到XML文件[Serializable]public class SomeClass{ public int Field1 { get; set; } public string Field2 { get; set;}}...string xmlFileName = @"c:\temp\1.xml";var obj = new SomeClass();Xml...
2018-04-25 10:08:36 663
原创 WPF学习 - 关于TreeView数据绑定
一篇关于如何在WPF中使用TreeView数据绑定的好文https://blogs.msdn.microsoft.com/mikehillberg/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step/
2018-04-20 17:03:38 983
原创 C#学习 - 关于XML文件的读写
直接上代码说明Xml读写1. 写Xml XmlDocument myXml = new XmlDocument(); XmlNode docNode = myXml.CreateXmlDeclaration("1.0", "UTF-8", null); myXml.AppendChild(docNode); ...
2018-04-13 11:50:26 226
原创 C#学习 - 关于反射
什么是反射?我的理解就是在运行时获取类型的元数据。1. 动态加载AssemblyAssembly ass = Assembly.LoadFrom(dllName);2. 通过反射获取加载的Assembly中定义的类型Type[] types = ass.GetTypes();3. 通过反射获取类型中的属性PropertyInfoPropertyInfo[] p = types[i].GetPro...
2018-04-12 23:30:17 118
原创 C#学习 - 函数参数什么时候需要用ref关键字
提一个问题,函数中有一个Dictionary<string, string>类型的参数,函数中会增加或修改Dictionary中的内容,那么参数中要使用ref关键字么?答案是:不需要!除非你要改变该参数所引用的Dictionary!看一个例子就明白了:void Method1(Dictionary<string, string> dict) { dict["a"] ...
2018-03-23 10:27:32 1948
原创 C#学习 - 编程指南
C# 编程指南 ( C# Programing Guide )C# 编码约定 ( C# Coding Convensions )
2018-03-22 11:13:00 1747
The Android Developers Cookbook
2012-12-21
AdvancedMC Specification
2012-09-10
GNU Make Manual
2012-08-29
vxWorks Application Programmer's Guide - 6.8
2012-08-29
Mobile IPv6
2012-05-25
Linux Device Drivers
2012-05-25
LTE Advanced (罗德和施瓦茨)
2012-05-08
LTE 介绍 (罗德和施瓦茨)
2012-05-08
Dual Cell HSDPA 白皮书
2012-05-08
WCDMA协议与信令分析手册
2012-05-08
理解IPv6 英文版 (第二版) Understanding IPv6
2012-05-08
vxWorks 6.x Net Stack Programmer's guide
2011-11-17
Effective C++/More Effective C++
2011-11-14
HSPA+ 技术资料
2011-11-09
Multiple PDP context (高通文档)
2011-11-09
Thinking in Java (2nd Edition)
2011-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人