3.2.1 定义 将抽象部分与它的实现部分分离,使它们都可以独立地变化 3.2.2 场景模拟 以电视遥控器的一个例子来引出桥接模式解决的问题,遥控器有开电视,关电视,以及更换节目的功能,电视机有多个品牌 3.2.3 场景代码实现 抽象类TV封装了遥控器功能的变化,具体实现交给具体型号电视机去完成
线程生命周期 线程生命周期开始于 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。 下面列出了线程生命周期中的各种状态: 未启动状态:当线程实例被创建但 Start 方法未被调用时的状况。 就绪状态:当线程准备好运行并等待 CPU 周期时的状况。 不可运行状态
public static void WriteFile(String str) { StreamWriter sw = new StreamWriter("E:/file.txt", true, System.Text.Encoding.Default); sw.WriteLine(str); sw.Close(); ————————————————
杭州市民卡医保改造,使用动态库调取医保电子凭证方法。 先将动态库ICCInter_HZ.dll,及其它动态库和配置文件,全部拷至程序根目录下。 一,新建类 /// <summary> /// 使用ICCInter_HZ.dll动态库,调用国家医保电子凭证 /// </summary> public class HZ_DZPZ { //
这两天因开发的需要,需要分析和构建针对ContextAttribute极其ContextBoundContext相关的拦截器的内容,所以今天一上班就开发分析ContextAttribute与ContextBoundContext之间的应用关系,在查看了相关网友的资源后开始了我的分析之路。 首先:我建立了一个ContextAttribute的子类和一
文章目录 写在前面1、第一个C#程序2、基本数据类型4、各种符号4.1、转义字符4.2、算术运算符4.3、逻辑运算符4.4、比较运算符4.5、位运算符4.6、三元运算符4.7、赋值运算符4.8、运算符的优先级 5、变量与常量6、命名规则 写在前面 C# (英文名为 CSharp) 。.NET 是一个开
反射 反射提供描述程序集、模块和类型的对象(Type 类型)。 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问器字段和属性。 如果代码中使用了特性,可以利用反射来访问它们。 反射的类位于System.Reflection命名空间中,他们是.net Re
主程序 .Net Core private static string CMDRun(string command) { var dir = AppDomain.CurrentDomain.BaseDirectory + @"\api\"; if (!System.IO.Directory.Exists(dir)) { return "api目录
//时间差 TimeSpan span = model.EndtTime.Subtract(model.StartTime); if (Convert.ToInt32(span.TotalSeconds) > 7200) { msgResultModel.Msg = "查询时间跨度不能超过2小时"; return msgResultMo
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication10{ class Program { static void Main(string[] args) { Console.WriteLine("请输入一个整数:"); string
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。 假设有如下方法,Method1,Method2,Method3,
正则表达式语言可以识别各种字符模式。.NET中的正则表达式基于Perl 5的正则表达式,并支持搜索和替换功能。 所有的正则表达式相关类型都定义在System.Text.RegularExpressions命名空间中。 正则表达式基础 量词符号是正则表达式最常用的运算符之一。?表示匹配运算发前的项目0次或者
TaskContinuationOptions [Flags,serializable] public enum TaskContinuationOptions( None=ooooo, //默认 //将当前任务生成的子任务,安排到全局任务,不直接安排到本地任务队列。 PreferFairness=ox0001, //提议TaskScheduler应尽可能地创建线程池线程 LongRunning=ox0002, //任
创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main还是存在的,只是一种略写法,可以用如下代码看出来: Sy
创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main还是存在的,只是一种略写法,可以用如下代码看出来: Sy
本质上record是一个实现了Equals()/GetHashCode()和ToString()的class record Person(int Id, string Name, int Age) // 这3个都是只读属性 { public string NickName { get; set; } // 可写属性 void Play() { Console.WriteL
220224飞行器v1.0 using System; namespace AeroplaneChess { class Program { //地图 static int[] Maps = new int[100]; //玩家A B坐标 static int[] playerPos = new int[2]; //玩家姓名 static string[] play
从前,用asp.net core写了一个给客户发交易明细的应用,每天发一次,因为是csv格式,当时用的是StringBuilder来一行一行组装数据,组装完后,EMali或SFTP给客户。 后来,为节省服务器资源,需要把服务从windows server迁移到Linux上,经过反复测试,都没有发现Bug,就上线了。结果悲剧发
从前,用asp.net core写了一个给客户发交易明细的应用,每天发一次,因为是csv格式,当时用的是StringBuilder来一行一行组装数据,组装完后,EMali或SFTP给客户。 后来,为节省服务器资源,需要把服务从windows server迁移到Linux上,经过反复测试,都没有发现Bug,就上线了。结果悲
CSRobot的gen命令,有一个参数--map,是指数据库字段类型到实体类型映射,本例是sql server到csharp的类型映射: SQL Server C# bigint Int64 binary Byte[] bit Boolean char String,Char[] date DateTime datetime DateTime dateti
CSRobot的gen命令,有一个参数--map,是指数据库字段类型到实体类型映射,本例是sql server到csharp的类型映射: SQL Server C# bigint Int64 binary Byte[] bit Boolean char String,Char[] date DateTime datetime DateTime dateti
string string是常用的类型,它具有不可变性:就是一旦赋值,就不可变,如果再赋值 ,就重新开辟内存空间;保留性:如果一个字符串存在,另一个与其相同,他们会指向同一个地址,不会再开辟新内存空间; 下面的Demo作个证明: public unsafe void Run() { string a = "abcd";
string string是常用的类型,它具有不可变性:就是一旦赋值,就不可变,如果再赋值 ,就重新开辟内存空间;保留性:如果一个字符串存在,另一个与其相同,他们会指向同一个地址,不会再开辟新内存空间; 下面的Demo作个证明: public unsafe void Run() { string a = "abcd";
我们通过四种循环方式 输出 1 到 100 首先我们来试一下while int i = 0; while (i <= 100) { Console.WriteLine(i); i++; } 我们循环判断 当i 大于100时 循环不再执行 然后是 do while 循环 int l = 0; do { Console.WriteLine(l); l++; } while (l <= 100);
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下: 算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符 算术运算符 下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符描述实例+把两个操