当前位置: 首页 > news >正文

没有虚拟主机怎么建网站html5简单网页框架代码

没有虚拟主机怎么建网站,html5简单网页框架代码,网站建设公司 青岛,开网站做彩票赚钱吗一、基础 Ⅰ 关键字 1、record record#xff08;记录#xff09;#xff0c;编译器会在后台创建一个类。支持类似于结构的值定义#xff0c;但被实现为一个类#xff0c;方便创建不可变类型#xff0c;成员在初始化后不能再被改变 #xff08;C#9新增#xff09; …一、基础  Ⅰ 关键字 1、record  record记录编译器会在后台创建一个类。支持类似于结构的值定义但被实现为一个类方便创建不可变类型成员在初始化后不能再被改变 C#9新增 在运行时通过构造函数给成员赋值 2、init  init关键字代替setC#9新增 特性只能通过构造函数和对象初始化器来设置属性值 public string Name { get; init; } 若用旧的.NET框架版本使用.NET 5代码需手动添加虚拟类如下 namespace System.Runtime.CompilerServices {      internal static class IsExternalInit { } } 3、with  with关键字C#9新增内部调用Clone浅copy方法使用如下  MyMath myMath2myMath1 with { };//浅拷贝 4、base  base关键字 作用1子类实例化时默认调用父类的无参构造函数base可指定调用父类对应的有参构造函数 作用2在子类中通过base调用父类被子类重写的虚方法 5、params params修饰方法参数 1、被修饰的参数必须为一维数组 2、被修饰参数为最后参数后面不允许有其它参数 6、ref、out 1、被ref或out修饰的参数通过引用方式传递 2、传参时也必须带关键字refout 3、ref修饰的参数传参时必须提前定义并初始化out可在传参时定义 4、out修饰的参数必须在控制离开方法之前对该参数赋值 7、sealed sealed有封装的意思一般用于修饰类或方法 1、修饰类时该类不可被继承 2、修饰方法时一般用于virtual与抽象方法的继承类sealed一般与override同时存在被修饰的已重写的方法不可被其派生类重写。 8、lock lock 确保代码正常执行不会被其他线程中断将代码定义为互斥段同一时刻只能由一个线程执行其他线程必须等待解决多线程同时抢占同一资源产生的冲突问题 示例如下         _root指需要跟踪的对象通常实例化一个object作为跟踪对象         {   _list.Clear()   }指定义为互斥段的代码块  lock(_obj){Count--;} 9、readonly readonly用于修饰字段为只读字段  1、在运行时可通过构造函数赋值 Ⅱ 特性 特性指C#中对类及程序集成员的进一步描述 更多了解点击C#进阶-特性   常用如下 [Key]指示该属性为主键(仅对属性、字段、索引器有效) [StringLength(maximumLength:50,MinimumLength 2)]限制字符串长度仅对属性、字段、参数、索引器有效 [EmailAddress]识别邮箱格式仅对属性、字段、参数、索引器有效 [Required]不可为空仅对属性、字段、参数、索引器有效 [Display(Name电话号码)]显示别名[CallerMemberName]获取调用该方法的成员名仅对参数有效[CallerFilePath]获取调用该方法的文件路径仅对参数有效[CallerLineNumber]获取调用该方法的行数仅对参数有效[Compare(“Password”, ErrorMessage “”)]比较两个属性的值是否相同[DataType(DataType.Password)]标记某属性为密码类型 二、扩展知识 1、Predicate 拥有一个或多个泛型参数并返回一个 bool 值常用于对 collection 进行一组条件检索类似于Func。 举例Predicate premm.Id2; 2、设置C#语言版本 工程文件 x.csproj中修改 PropertyGroup节点内添加子节点: LangVersionlatest/LangVersion 3、ListCollectionView过滤集合 使用ListCollectionView类构造函数注入列表 通过该类的 Filter属性过滤集合 ListAnimal animals new ListAnimal() { new Animal(1,ani1),new Animal(2,动物2) };ListBear bears new ListBear();var tmp animals.AdaptListBear();tmp.ForEach(m m.Description Animal adapt bear...);ListCollectionView viewnew ListCollectionView(tmp);view.Filter i ((Bear)i).ID 2;foreach (var animal in view)MessageBox.Show(((Bear)animal).Name); 4、Adapt适配器 安装NutGet包Mapster 可理解成转换器适配器适配的是不同类间相同的名称不论字段或属性必须为值类型或字符串类型只要名字相同都适配给目的对象 注意即使名称相同属性或字段也不能适配成方法 Animal animal new Animal(18);Bear bear animal.AdaptBear();Console.WriteLine(bear.Age.ToString());Console.WriteLine(bear.Description.ToString());Console.WriteLine(************************);Bear bear1new Bear();Console.WriteLine(bear1.Age.ToString());Console.WriteLine(bear1.Description.ToString());Console.WriteLine(*************************);Banana banana animal.Adapt(new Banana());Console.WriteLine(banana.Description); 5、值类型与引用类型 值类型变量直接保存其数据作为类的字段成员变量时跟随其所属的实例存储也就是存储在堆中作为方法中的局部变量时存储在栈上 引用类型变量保存其数据的引用地址分配在栈中具体数据(实例)部署在托管堆中 值类型结构体数值类型bool型用户定义的结构体枚举可空类型 引用类型数组用户定义的类、接口、委托object字符串  引用类型string  string a A;string b a;Console.WriteLine($a:{a}\tb:{b});a B;Console.WriteLine($a:{a}\tb:{b}); string为引用类型上面示例看出string像值类型 实际上是由于运算符的重构所导致的结果。当a被重新赋值时.NET为a在托管堆上重新分配了一块内存。这样做的目的是使字符串类型与通俗意义上讲的字符串更接地气。 引用类型数组 数组元素为值类型时在托管堆中一次性分配全部值类型空间堆中栈并自动初始化        元素为 引用类型时先在托管堆分配一次空间此时不会自动初始化任何元素均为null。等到有代码初始化某个元素的时这个引用类型元素的存储空间才会被分配在托管堆上 6、程序设置当前项目工作目录 Directory.SetCurrentDirectory(Path.GetDirectoryName(typeof(Test).Assembly.Location)); 7、获取App.config配置文件中的值 1、获取appSettings节点值  ConfigurationManager.AppSettings[key]; 2、获取connectionStrings节点值: var list ConfigurationManager.ConnectionStrings; string str; foreach (ConnectionStringSettings item in list) {        if(item.NameConTest)       str item.ConnectionString; } 8、Linq常用语句 关于Linq常用语句详细讲解点击C#-关于LINQ  select返回指定类型  Where查询特点条件方式1from in方式2Lambda表达式 Order排序1、descending 降序2、ascending 升序 OfType查询特定类型 Join合并两集合通过指定键返回指定结构类型集合 GroupJoin:俩集合通过指定键分组 Reverse反转集合元素顺序 GroupBy按指定键对自身分组  Any / All 判断是否任意一个/全部满足条件 Skip跳过指定数量元素  Take拿取指定数量元素 Count获取元素个数  Sum、Average、Max、Min获取集合总值、平均值、最大值、最小值 Concat连接集合 Distinct去重去重类中某个字段需实现IEqualityComparer接口 ElementAt获取指定索引元素与[ ]类似 First/Single、Last获取集合中第一个、最后一个元素(如果集合中包含多个元素使用Single会报错) ToDictionary将集合转换为字典 ToList 将集合转换为List SequenceEqual判断两个集合是否相等 9、Mutex互斥及防止App多开 1、继承自WaitHandle类抽象基类用于等待一个信号的设置有静态方法WaitOne、WaitAll、WaitAny 2、Mutex互斥锁可定义互斥名称所以可用于跨进程的同步操作因为操作系统可识别有名称的互斥在不同进程间共享 3、Mutex构造函数中可指定互斥是否最初应由主调线程拥有、定义互斥名称、获取互斥是否已存在的信息 用法1跨进程互斥实现进程间同步未命名互斥只能用于跨线程  Mutex mutext new Mutex(false,MyConsole); mutext.WaitOne(); Console.WriteLine(${Process.GetCurrentProcess().ProcessName}:\tStart......); Console.ReadLine(); mutext.ReleaseMutex(); Console.WriteLine(${Process.GetCurrentProcess().ProcessName}:\tEnd.......); 用法2防止App重复开启 Mutex mutext new Mutex(false,MyConsole,out bool createNew); if (!createNew)return; 10、Monitor设置等待资源时间 lock关键字是由Monitor类实现抛出异常也会解锁如下 Monitor.Enter(_obj);try{Count--;}finally { Monitor.Exit(_obj); } Monitor相对于lock的优点在于使用Monitor的TryEnter方法其中可传递一个超时值用于指定等待被锁定的最长时间若_obj被锁定TryEnter方法将布尔型的引用参数设置为true并同步的访问_obj锁定状态若另一个线程锁定_obj时间超过指定时间TryEnter将bool引用参数置为false线程将不再等待而是去执行其它操作如下 Monitor.TryEnter(_obj, 2000, ref _lockTaken);if (_lockTaken){try{Console.WriteLine(Thread.CurrentThread.Name :\t obj lock.....);Thread.Sleep(5000);Console.WriteLine(Thread.CurrentThread.Name :\t obj release.....);}finally{Monitor.Exit(_obj);}}elseConsole.WriteLine(Timeout,Run other.....); 三、版本新增  C#9新增顶级语句; 字符串的范围除SubString方法C#8新增hat(^)、范围运算符[..];  StringBuilder sb new StringBuilder(111111);//动态字符串默认容量16字符成倍增加 sb.Append(abcdefghjklmnopq); Console.WriteLine(sb.Length);//获取有效长度 Console.WriteLine(sb.Capacity);//获取容量 string rangstr hello,auston! ; Console.WriteLine(rangstr[..5]);//范围运算符 Console.WriteLine(rangstr[7^2]);//hat^运算符从索引7往前数第2个字符  string? snull; string s2 s?.ToLower()??string.Format();//使用null条件运算符和空合并运算符 Console.WriteLine($\t{s2}\t{{}});//字符串插值带$前缀与verbatim字符串带前缀 DateTime t DateTime.Now; Console.WriteLine(${t:D});//字符串格式控制 int a 2_2_2;//使用数字分隔符提高代码可读性编译器会忽略下划线 Console.WriteLine(${a:c}); double d 22.336_6; Console.WriteLine(${d:###.##});//小数点后四舍五入保留2位 Console.WriteLine(${d:000.00});//小数点前保留3位后保留2位 FormattableString str $time{t},number:{a};//格式化字符串类型 Console.WriteLine(格式str:{0},str.Format);//获取格式化字符串的原始字符串 for (int i 0; i str.ArgumentCount; i) {     Console.WriteLine(Arg{0}:{1}, i, str.GetArgument(i));//获取参数值 } 只读字段readonly修饰的字段 在运行时通过构造函数赋值 只读属性set被private修饰使用属性初始化或在构造函数里初始化如下 public int Id { get; } 23; 元组把多个类型合为一个类型不需要创建类、结构、记录             var t(String:sss,Int32: 32);             t.Int32 2;             t.String Auston; .Net提供了TupleT旧类型                   ValueTupleT类型推荐有更好的内置支持
http://wiki.neutronadmin.com/news/271797/

相关文章:

  • 做pc端网站价位wordpress标签作用
  • 青岛网站建设技术外包色系网站.
  • 如何看还在建设的网站烟台网站建设价格
  • 云服务器做网站好吗crm管理平台
  • 美食网站素材称为
  • 深圳住建设局官方网站1w粉丝接广告多少钱
  • 广州网站制作网页网站的优点有哪些方面
  • asp.net怎么生成网站建设教育协会网站
  • 今天建设银行网站无法登录应用公园是收费还是免费的
  • 网站主体证件哈尔滨建筑专业网站
  • 微信上的微网站在哪里公司网络营销的方案思路
  • ppt网站模板做网站好还是做安卓app好
  • 后缀为net的网站有哪些做网站的公司一年能赚多少钱
  • 无锡做网站价格我的家乡网站设计模板
  • 学校网站建设价格明细表360浏览网页入口
  • 成都企业网站开发深圳分销网站设计电话
  • 鄱阳网站建设多少钱qq浏览器在线
  • 北京中小企业网站建设公司综合购物网站建站
  • 泰安网站建设538sw离线网页制作工具
  • 外卖网站建设价钱百度平台营销收费标准
  • 网站搭建技术都有啥如何做正规电影网站
  • 装饰网站设计模板怎么免费搭建自己的网站
  • 网页游戏广告平台网站建设自然堂网站建设策划书
  • 泰州网站建设策划大侠wordpress
  • 网站后台内容不更新重庆最新新闻发布会
  • html个人网站设计wordpress更新不成功
  • 广州网站建设知名 乐云践新Wordpress自动化
  • 网站设置可以访问亚马逊网站建设性提议
  • cms网站怎么制作企业所得税的计算公式三种
  • 怎么做淘宝客优惠券网站沈阳网站建设 南塔