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

淄博北京网站建设公司国内免费的ip地址

淄博北京网站建设公司,国内免费的ip地址,网站开发 平面设计,仿淘宝的网站模版C#是一种通用的#xff0c;类型安全的面向对象编程语言。其目标是提高程序员生产力。 一.面向对象 C#实现了丰富的面向对象范式#xff0c;包括封装、继承、多态。 C#面向对象特性包括#xff1a; 统一的类型系统 类与接口 属性、方法、事件 C#支持纯函数模式 二、类型安…C#是一种通用的类型安全的面向对象编程语言。其目标是提高程序员生产力。 一.面向对象 C#实现了丰富的面向对象范式包括封装、继承、多态。 C#面向对象特性包括 统一的类型系统 类与接口 属性、方法、事件 C#支持纯函数模式 二、类型安全性 C#是一门类型安全的语言。例如C#不允许将字符串类型作为整数类型处理。 C#支持类型静态化。能够在程序运行前排除大量错误。 C#允许使用dynamic关键字动态定义指定类型。然而C#在大多情况下仍然是一门静态语言。 C#还是一门强类型语言。 三、内存管理 C#依靠运行时来实现自动内存管理。公共语言运行时的垃圾回收器会作为程序的一部分运行。 C#并未抛弃指针关键字unsafe的程序块显式内存分配。 四、平台支持 Linux、macOS、iOS、Android 五、CLR 公共语言运行时Common Language Runtime,CLR,如自动化内存管理和异常处理。 C#也会将代码编译为托管代码。托管代码以中间语言Intermediate LanguageIL的形式表示。CRL通常会在执行前将IL转换为机器如x84、x64原生代码称为即时Just-In-Time编译。 六、.NET Framework .NET Framework是由CLR和大量的程序库组成。 七、其他框架 UWP .Net Core ASP.NET Core Xamarin 八、简史 8.1C# 7.0新特性 8.1.1 数字字面的改进 下划线改善可读性 int million 1_000_000;二进制字面量使用Ob前缀来标识 int a 0b1001_0000; var b 0b1001_0000;8.1.2 输出变量及参数忽略 调用含有out参数的方法将更加容易 bool successful int.TryParse(123, out int result); Console.WriteLine(result);当调用含有多个out参数方法时可以使用下划线字符_忽略你并不关心的参数 方法 static void SimpleMethod(out int result,out int result2 ,out int result3) {result 1 1;result2 2 2;result3 3 3; }调用 SimpleMethod(out _, out _, out int result2);8.1.3 模式 is运算符也可以自然的引入变量称为模式变量 方法 static void SimpleMethod2(object x) {if(x is string s){Console.WriteLine(s.Length);} }调用 SimpleMethod2(大家好呀);同样 switch语句也同样支持模式。可以使用when子句来判断条件或是直接选择null; 方法 static void SimpleMethod3(object? x){switch(x){case int i:Console.WriteLine(It is an int); break;case string s:Console.WriteLine(s.Length);break;case bool b when b true :Console.WriteLine(True);break;case null:Console.WriteLine(It is null);break;}}调用 SimpleMethod3(12); SimpleMethod3(12); SimpleMethod3(true); SimpleMethod3(null);8.1.4 局部方法 局部方法是声明在其他函数内部的方法 static void WriteCubes() {Console.WriteLine(Cubu(3));Console.WriteLine(Cubu(4));Console.WriteLine(Cubu(5));int Cubu(int value) value * value * value; }8.1.5 更多的表达式体成员 C#6引入了以”胖箭头“语法表示的表达式的方法只读属性、运算符以及索引器。而C#7更将其扩展到了构造函数、读/写属性和终结器中 类 public class Person : IAsyncDisposable{string? name;public Person(string? name) Name name;public string? Name{get name;set name value ?? ;}public ValueTask DisposeAsync(){Console.WriteLine(Dispose);return ValueTask.CompletedTask;}}方法 static async void PersonDispose(){await AsyncPersonDispose();}static async Task AsyncPersonDispose(){await using (Person p new Person(小米)){Console.WriteLine(p.Name);}}8.1.6 解构器 C#7引入了结构器模式。构造器一般接受一系列作为参数并将其赋值给字段而结构器则正相反它将字段反向赋值给变量。 类 public class Dog{string? name;public Dog(string? name) Name name;public string? Name{get name;set name value ?? ;}public void Deconstruct(out string firstName,out string lastName){int spacePos name.IndexOf( );firstName name.Substring(0, spacePos);lastName name.Substring(spacePos 1);}}调用 var joe new Dog(joe Bloggs); var(first,last)joe; Console.WriteLine(first); Console.WriteLine(last);8.1.7 元组 C# 7 改进当属显示的元组tuple支持元组提供了一系列相关值的简单方式 var bob (Bob, 23); Console.WriteLine(bob.Item1); Console.WriteLine(bob.Item2);C#的新元组实质上是使用了System.ValueTuple…泛型结构的语法糖。 我们还可以对元组的元素命名 var tuple (Name: Bob, Age: 23); Console.WriteLine(tuple.Name); Console.WriteLine(tuple.Age);有了元组函数再也不用通过一系列out参数来返回多个值了 static (int row, int colum) GetFilePosition() (3, 10); var pos GetFilePosition(); Console.WriteLine(pos.row); Console.WriteLine(pos.colum);元组隐式的支持解构模式 (int row,int column) GetFilePosition(); Console.WriteLine(row); Console.WriteLine(column);8.1.7 thow表达式 现在它可以出现在表达式体函数中 public string Foo() throw new NotImplementedException();thow表达式也可以出现在三无判断运行符中 方法 static string Capotalize(string? value) value null ? throw new ArgumentException(Value) :value ? :char.ToUpper(value[0]) value.Substring(1);调用 Console.WriteLine(Capotalize(null)); 8.2 C# 6.0新特性 null条件“Elvis”运算符可以避免在调用方法或访问类型的成员之前显式地编写用于null判断的语句。如下result将会为null而不会抛出NullReferenceException: System.Text.StringBuilder sb null; string result sb?.ToString();lambda表达式 public int TimesTwo(int x) x * 2; public string someProperty Property value;属性初始化器可以对自动属性进行初始赋值 public DateTime TimeCreated { get; set; } DateTime.Now;这种初始化也支持只读属性 public DateTime TimeCreated { get; } DateTime.Now;只读属性也可以在构造器中赋值。 索引初始化器可以一次性初始化具有索引器的任意类型 var dict new Dictionaryint, string() {[3] three,[20] ten };字符串插值用更加简单的方式替代了string.Format: string s $It is {DateTime.Now}; Console.WriteLine(s);异常过滤器可以在catch上再加一个条件 string html; try {html new WebClient().DownloadString(http://asef); } catch(WebException ex) when(ex.Status WebExceptionStatus.Timeout) {}using static 指令可以引入一个类型的所有静态成员这样就可以不用写类型而直接使用这些成员 using static System.Console; WriteLine(Hello world);nameof运算符返回变量、类型或者其他符号的名称这样可以避免变量重命名造成不一致的代码 int capacity 123; string x nameof(capacity); Console.WriteLine(x);值得一提的是C# 6.0可以在catch和finally块中使用 await. 8.3 C# 5.0新特性 async和await,支持异步功能有利于编写高并发和高效的I/O密集型应用程序。 8.4 C# 4.0新特性 1.动态绑定 2.可选参数和命名参数 3.用泛型接口和委托实现类型变化 4.改进COM互操作性 8.5 C# 3.0新特性 隐式局部变量、匿名类型、对象构造器、lambda表达式、扩展方法、查询表达式、表达式数。 8.5 C# 2.0新特性 泛型、可空类型、匿名方法、分部类、静态类
http://www.dnsts.com.cn/news/175674.html

相关文章:

  • 服务类网站建设洛阳生活网
  • 网站建设推广技术网站管理平台模板
  • 自己做的网站添加域名中软国际软件培训收费
  • 注册网站时跳过验证码小说网站开发实录
  • 两个网站做的h5如何合在一起企业vi品牌设计
  • 广东建设厅证件查询网站大庆网页制作公司电话
  • 如何做好一个外贸进网站的编辑万户 网站建设
  • 如何看网站的流量平台制作计划
  • 网站上传视频教程东莞seo网络推广
  • 毕设做桌面软件 网站淘宝联盟网站建设
  • 更改wordpress程序站点网址主题wordpress
  • 建网站什么赚钱学网站开发要学什么
  • 怎么让网站排名上去免费ui设计网站
  • 网站建设广州公司mooc网站建设
  • 龙岩网站建设企业深圳学校网站建设
  • 网站的风格主要包括海南省建设考试网站首页
  • 宾县建设局网站自助旅游网站开发分析报告
  • 长沙网站设计优秀柚v米科技东营网站建设优化
  • 做网站必须托管服务器吗wordpress移动端音频播放
  • 手机端网站建设教程视频网站建设 技术方案
  • 怎么在百度做网站文字网址生成器
  • 北京移动端网站济南网站建设技术支持
  • 企业展示网站模板wifi域名是什么
  • 为什么手机网站跳转页面上wordpress如何设置中英文切换
  • 网站开发的需求分析教学视频佳木斯哈尔滨网站建设
  • 网站首页制作模板wordpress如何修改后台网址
  • 网站改版怎么改做网站着用什么软件
  • 大型网站 cms猪八戒平台官网
  • 推广优化公司网站上海建筑设计院院长
  • 网站结构构图爱网课