摘要: 先弄个实体类: class Student { public string Name { get; set; } public string Gender { get; set; } public int Age { get; set; } } 序列化 用JsonConvert.SerializeO 阅读全文
posted @ 2021-09-26 18:32 double64 阅读(163) 评论(0) 推荐(0)
摘要: C语言指针常见错误,主要有两种情况: 1).指针未初始化; 2).避免使用scanf给指针赋值; 3).赋值指针为NULL。 指针未初始化 这种情况: int i = 10, *p; *p = i; printf("*i=%d\n", *p); 指针变量p是没有初始化的,就是你还没有给他里面赋值地址 阅读全文
posted @ 2021-09-26 18:29 double64 阅读(955) 评论(0) 推荐(0)
摘要: 尝试用 C# 和 C/C++ 混合编程玩下,主要看看如何传参。 传基本的数据类型 像int,double这类的基本类型直接传参好像问题不大。 C++: extern "C" __declspec(dllexport) double cppFun(int a, double b) { return a 阅读全文
posted @ 2021-09-26 18:27 double64 阅读(142) 评论(0) 推荐(0)
摘要: C#.Net 判断窗体是否创建,如果已创建,激活窗体。 方法一 private Form2 frm2; private void button1_Click(object sender, EventArgs e) { if (frm2 == null) { frm2 = new Form2(); f 阅读全文
posted @ 2021-09-26 18:24 double64 阅读(1072) 评论(0) 推荐(0)
摘要: 做几道简单的C语言题。 (1) 求出 1! + 2! + 3! +...+n!; #include <stdio.h> int nF (int n); int plus_nF(int n); int main(void) { printf("%d\n", plus_nF(10)); return 0 阅读全文
posted @ 2021-09-26 18:22 double64 阅读(340) 评论(0) 推荐(0)
摘要: 首先添加头文件using System.Xml; 然后,主要是几个步骤: 创建 XML 文档操作对象; 加载 XML 文档到文档对象中; 获取 XML 文档根目录; 遍历匹配节点信息,将对象信息放置 list 集合中。 Student.cs: using System; using System.C 阅读全文
posted @ 2021-09-26 18:20 double64 阅读(1803) 评论(0) 推荐(0)
摘要: 直接用明文文本的方式保存对象信息不是非常科学,现在用二进制序列化的方式来保存。 这里要先增加命名空间:using System.Runtime.Serialization.Formatters.Binary;,还要给实体类增加序列化标识特性。 通过分层设计来实现: 实体类 Student.cs: u 阅读全文
posted @ 2021-09-26 13:45 double64 阅读(441) 评论(0) 推荐(0)
摘要: 可以对象的信息保存到文本中,一行一行的保存,然后读取的时候一行一行的读取。缺点:如果行数错乱了,那读出来也是错乱的。这里只是一种思路。 只做练习,很多异常情况没有处理。 using System; using System.Collections.Generic; using System.Comp 阅读全文
posted @ 2021-09-26 13:43 double64 阅读(257) 评论(0) 推荐(0)
摘要: 文件流,文件夹的基本操作。有一些异常的判断没有加,实际中可以加一些异常的判断。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.D 阅读全文
posted @ 2021-09-26 13:37 double64 阅读(310) 评论(0) 推荐(0)
摘要: 可见BackGroundWorker有三个事件,事件间通过EventArgs实现参数传递。有用到CancellationPending属性判断取消。EvnentArgs 有很多属性:Cancel、Argument、Result、ProgressPercentage、UserState属性等。 usi 阅读全文
posted @ 2021-09-26 08:24 double64 阅读(333) 评论(0) 推荐(0)
摘要: 多个线程对同一资源的争夺,有可能出现线程不安全的现象。用lock这种最简单的方式实现下。 一 直观的看下这种情况: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Ta 阅读全文
posted @ 2021-09-26 08:22 double64 阅读(923) 评论(0) 推荐(0)
摘要: 首相要加入using System.Diagnostics;命名空间。 GetProcesses()、Modules属性。一些进程的属性信息: Id // 进程唯一标识符 (Id) Handle //关联进程的本机句柄 (Handle) HandleCount //打开句柄数 (HandleCoun 阅读全文
posted @ 2021-09-26 08:21 double64 阅读(731) 评论(0) 推荐(0)
摘要: 跨线程的小运用。DataSet 和 DataGradeView DataTable 的数据填充。 ▲ 实现效果,同时还可以拖动窗口。 Note: 一些和数据库的交互操作都封装在 SQLHelper 类中,练习时候自行添加。 阅读全文
posted @ 2021-09-26 08:19 double64 阅读(342) 评论(0) 推荐(0)
摘要: 跨线程访问控件,主要用到控件的属性判断InvokeRequired是否为true,为true则为其他线程创建。 using System; using System.Windows.Forms; using System.Threading; namespace 跨线程控件访问 { public p 阅读全文
posted @ 2021-09-26 08:17 double64 阅读(1523) 评论(0) 推荐(0)
摘要: 回调函数的基本用法。 using System; using System.Threading; namespace AsyncBasic { class Program { [STAThread] static void Main(string[] args) { new Program().Ex 阅读全文
posted @ 2021-09-26 08:15 double64 阅读(702) 评论(0) 推荐(0)
摘要: 这应该是一种传统的方式吧。 一般顺序: 定义一个委托。 根据委托实现方法。 异步调用。 using System; using System.Threading; namespace AsyncBasic { class Program { [STAThread] static void Main( 阅读全文
posted @ 2021-09-26 08:14 double64 阅读(46) 评论(0) 推荐(0)
摘要: 扩展方法的 3 个要求: 声明扩展方法的类必须声明为 static; 扩展方法本身必须声明为static; 扩展方法第一个参数类型前一定要包含关键字 this。 using System; namespace ExtensionMethods { sealed public class MyMeth 阅读全文
posted @ 2021-09-26 08:13 double64 阅读(207) 评论(0) 推荐(0)