代码: 1 using System; 2 using static NuGet.Frameworks.FrameworkConstants; 3 using static NuGet.Protocol.Core.Types.Repository; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Threading; 7 using System.Threading.Tasks; 8 usin
引用网址:https://www.jb51.net/article/198572.htm Mutex类、Event类、SemaphoreSlim类和ReaderWriterLockSlim类等提供了多个进程之间的线程同步。 1、WaitHandle 基类 WaitHandle抽象类,用于等待一个信号的设置。可以根据其派生类的不同,等待不同的信号。异步委托的BeginInv
QQstate state = QQstate.Online; // 枚举类型默认可与int类型互相转换 枚举类型和int类型是兼容的 // 通过强制转换进行转换 // 枚举类型转int类型 int n = (int)state; Console.WriteLine(n); // #region可以将写好的一个模块隐藏起来,清晰界面 #region 写了一个5,并
// 产生随机数 int n = 10;//随机数的个数 // 1.创建能够产生随机数的对象 Random r = new Random();//放在循环外节省空间 while (n>0) { // 2.让产生随机数的这个对象调用方法来产生随机数 int rnumber = r.Next(1, 10);//[1,10),取整数时
Socket 通信有服务器段和客户端 .NET 6.0 C# 10.0 服务器端代码如下: 1 public static void Main(string[] args) 2 { 3 Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 4 IPAddress ipaddress
V8引擎的样例。来源于ClearScript的github上的例子。 以下例子足以满足大部分需求。 using System; using Microsoft.ClearScript; using Microsoft.ClearScript.JavaScript; using Microsoft.ClearScript.V8; // create a script engine using (var engine = new V8Scrip
using System.IO; using System;using System.Collections.Generic;using System.Linq; static public int SampleRate = 2000;//单位值HZ struct myData { public int x; //峰的X值 public double y; //峰的Y值 } private
编程语言的基元类型 - 编译器直接支持的数据类型 基元类型直接映射到Framework类库(FCL)中存在的类型 int a1 = 0; System.Int32 a2 = 0; int a3 = new int(); System.Int32 a4 = new System.Int32(); C#基元类型: sbyte
数据库参照之前文章中的学生数据库表格 本次实现一个小案例,实现C#对数据库的增删改查的综合运用,并在控制台进行测试。 1.数据库信息新增部分代码: public static void InsertSql() { using(SqlConnection connection = new SqlConnection(strConn))
// 三元表达式 // 语法: 表达式1?表达式2:表达式3; // 如果表达式1成立则表达式2值为整个表达式的值 // 如果表达式1不成立则表达式3值为整个表达式的值 // 表达式2/3的表达式类型应相同,也应与整体三元表达式相同 // 应用范围 : 1次if else 可以用三元表达式代替 /
4.2.1 定义 模板方法模式,定义一个操作中的算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 4.2.2 结构图 4.2.3 通用代码 AbstractClass是抽象类,其实就是一抽象模板,定义并实现了一个模板方法,这个模板方法一般是一个
public static void PrintArgs(string args) { try { try { if (args == null) { ArgumentNullException myEx = new ArgumentNu
HiSql新增对表的操作(暂时仅支持SqlServer,陆续会加上对其它数据库的实现) 可能有人会疑问作为ORM框架为什么会加这些功能?HiSql是致力于低代码平台的ORM框架,如果有了解过低代码平台的原理你就会明白这些功能有多有用! HiSql提供以下对表及视图的操作 表的重命名 //OpLevel.Execute
C# 5.0语法糖,依托Task存在,本身不会产生线程,达到了通过异步方法实现同步效果的目的(解决异步多线程执行顺序难控制的问题) 1.定义 async可以随便添加,可以不用添加await await只能出在Task前面,但是方法必须声明async,不能单独出现 await/async之后,原本没有返回值,可以返回Task
3.5.1 定义 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 3.5.2 场景模拟 在家庭影院中,有灯光,屏幕,投影机,功放机,DVD 播放器这几个基本的工具: 1灯光,可以关闭灯光和打开灯光。 2投影机,可以打开和关闭投影机。
Pro C# 2008 第11章 委托、事件和Lambda 委托定义:C#中的回调。安全,面向对象。包含: 所调用的方法的名称; 该方法的参数(可选); 该方法的返回值(可选)。 委托声明 delegate声明的是System.MulticastDelegate类。 public delegate int BinaryOp(int x, int y); // 静态方法 BinaryOp b =
程序的结构 顺序结构:程序从Main函数进入,从上到下一行一行的执行,不会落下任何一行 分支结构:if if-else 选择结构:if else-if switch-case 循环结构:while do-while for foreach if语句 语法: if(判断条件) { 要执行的代码; } 判断条件:一般为关系表达式或者bool类型的值 执行过程:程序运
案例代码如下: class MyClass { public void A() { try { B(); } catch (System.NullReferenceException) { Console.WriteLine("catch clause in A()");
List<T>示例 这篇文章中,我们会用示例讨论List<T>泛型类;List<T>是目前隶属于System.Collections.Generic名称空间的集合类。List集合类是使用范围最广的泛型集合类之一。List<T>集合类是可以用索引进行处理一种强对象列表类型。List<T>提供了很多函数,用于搜索、排列和操作列表项。
创建控制台应用程序,在点击项目右键添加-新建项-类命名为: Program类,详细代码如下: using System; namespace Text_09_23Convert { class Program { class Student { public string stuNo = "3119070130"; public string Name;
字符串 字符串的特性 字符串的不可变性 当给一个字符串重新赋值之后,老值并没有被销毁,而是指向了一个新开辟的空间,该空间存储新值。 当程序结束后,GC扫描整个内存,如果发现有的空间没有任何指向,则该空间被回收。 string s1 = "张三"; string s2 = "张三"; Console.ReadKey(); 观察
host service public class HostService01 : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { Console.WriteLine("HostService01 started."); await Task.D
int[] myArray = new int[] { 1, 2, 3, 4 }; IEnumerator enumerator = myArray.GetEnumerator();//获取迭代器 while (enumerator.MoveNext())//指向下一个,有值返回true,没有值返回false { Console.WriteLine(enumerator.Current);//当前值 } enumerator.Reset();//迭代器复
using System; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { // static async Task Main(string[] args) { //等待执行完成 var result = await Task.Run(() =>
作用 在使用.NET编写的代码在debug时很容易进行排查和定位问题,一旦项目上线并出现问题的话那么只能依靠系统日志来进行问题排查和定位,但当项目复杂时,即各种方法间相互调用将导致要获取具体的出错方法或调用者将是一件不那么容易的事(因为没有PDB文件) 还好.NET提供了一系列系统组