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

h5做怎么做微网站友情链接适用网站

h5做怎么做微网站,友情链接适用网站,padavan安装wordpress,滨海专业做网站C#8.0本质论第三章–更多数据类型 3.1类型的划分 一个类型要么是值类型,要么是引用类型。区别在于拷贝方式:值类型数据总是拷贝值;引用类型的数据总是拷贝引用。 3.1.1值类型 3.1.2引用类型 引用类型的变量存储对数据存储位置的引用。 3.…

C#8.0本质论第三章–更多数据类型

3.1类型的划分

一个类型要么是值类型,要么是引用类型。区别在于拷贝方式:值类型数据总是拷贝值;引用类型的数据总是拷贝引用。

3.1.1值类型

在这里插入图片描述

3.1.2引用类型

引用类型的变量存储对数据存储位置的引用。

在这里插入图片描述

3.2将变量声明为可空

null值对于数据库编程来说尤为重要,因为很多数据库都允许字段的值为null,可以使用可空修饰符将类型声明为允许或不允许空值

3.2.1对null值引用类型变量进行解引用

判断一个变量的值是否为null,可以用is操作符,虽然也可以用==,但由于等于操作符可能被重写并实现不同的行为,因此判断null最好使用is操作符。

在C#6.0中引入的用于处理null值的操作符交“null值条件(null condition)”操作符,该操作先判断一个变量是否为null,再对其解引用。

//先判断text变量是否为空,为空则赋值为null,否则读取length值
int? length = text?.length;

3.2.2可空值类型

技术上讲,一个用可空修饰符声明的值类型变量仍然是值类型,而不会变成引用类型,因此,对一个被赋值为null的值类型变量进行解引用时,大部分情况下不会发生null值异常,因为值类型的方法和属性都是基于模板类Nullable实现的

3.2.3可空引用类型

在C#8.0中,声明任何类型的变量时,默认都为不可空,为了确保兼容旧代码,C#默认情况不支持引用类型的可空特性。想要启用此特性,需要使用**#nullable语句**,或在项目属性配置中启用该特性。

3.3隐式类型的局部变量

C#3.0新增了上下文关键字var来声明隐式类型的局部变量,在声明时初始化。(类似于C++11中的auto,在编译时确定类型)

C#3.0新增var的真正目的是支持匿名类型,匿名类型是在方法内部动态声明的数据类型:

var patent1 = new {Title = "Bifocals",YearOfPublic = "1784"};
System.Console.WriteLine($"{patent1.Title} {patent1.YearOfPublic}");

自从C#7.0引入元组语法后,匿名类型几乎就用不着了。

3.4元组

C#7.0提供了元组(tuple),元组允许在一条语句中完成对所有变量的赋值:

(string country, string capital, double gdpPerCapita) = ("Burundi", "Bujumbura", 263.67);

详细见书本。

3.5数组

new关键字和对应的类型在声明时可选,数组可以不提供初始值,这样每一项都被初始化成默认值,不提供初始值就必须指定数组大小,大小可以是运行时计算的变量(其实就是C++里new一个数组)。指定的数组大小必须和大括号里的元素数量匹配(与C++不同,C++里可以缺少,后面缺少的就初始化为默认值)。

从C#3.0起可以不指定数据类型。

3.5.1数组的声明

string[] language;

方括号指定了数组的**秩(rank)**或者说维数,与C++不同,数组声明的括号紧跟在类型之后,这样所有的类型信息都在一起。

某一维上的元素数量不是变量声明的一部分。(比如C++里声明 int a[10]; 带着大小,但是C#不同,声明的类型是不带大小的,为什么呢,我认为是因为C#里的数组赋值其实是动态分配,它是引用类型,数据存放在堆里,类似于C++里的 int* a=new int[n]; ,而int a[10];是放在栈里的,编译的时候就要确定大小了)。

3.5.2数组实例化和赋值

数组声明之后如果还想赋值,就需要使用new关键字

string[] language;
language = new string[]{"C#","C++","Lua"};

C#以类似的方式处理多维数组

int[,] cells = new int[3,3];
int[,] cell = {{1,2,3},{1,2,3},{1,2,3}
};

数组包含三个int[]类型的元素,每个一维大小必须完全一样,多维数组也称为“矩形数组”。

还可以定义交错数组(jagged array),也就是由数组构成的数组。要求为内部每个数组都创建数组实例。

int[][] cells =
{new int[]{1,2,3},new int[]{4,5},new int[]{6,}
};

3.5.3数组的使用

从C#8.0开始,可以使用相对于末尾元素的索引来访问数组,该操作需要用到反向索引操作符(index from end operator),有时也称作操作符或者"帽子操作符",索引1代表数组最后一个元素,索引^0代表最后一个元素的下一个位置。CLR能防住所有C#代码越界。

Length返回数组中元素的总数,如果是多维数组,比如大小是2x3x3那么Length会返回元素总数18,对于交错数组,Length只作用于外部数组,会返回2。

C#8.0提供了一个新的访问方法:数组切片,用**区间操作符…**表示,

string[] languages = new [] {"C#", "COBOL", "Java","C++", "TypeScript", "Swift","Python", "Lisp", "JavaScript"};Console.WriteLine($@"  0..3: {string.Join(", ", languages[0..3])  // C#, COBOL, Java
}");
Console.WriteLine($@"^3..^0: {string.Join(", ", languages[^3..^0]) // Python, Lisp, JavaScript
}");
Console.WriteLine($@" 3..^3: {string.Join(", ", languages[3..^3]) // C++, TypeScript, Swift
}");
Console.WriteLine($@"  ..^6: {string.Join(", ", languages[..^6])  // C#, COBOL, Java
}");
Console.WriteLine($@"   6..: {string.Join(", ", languages[6..])  // Python, Lisp, JavaScript
}");
Console.WriteLine($@"    ..: {// C#, COBOL, Java, C++, TypeScript, Swift, Python, Lisp, JavaScriptstring.Join(", ", languages[..])  // Python, Lisp, JavaScript
}");
Console.WriteLine($@"    ..: {// C#, COBOL, Java, C++, TypeScript, Swift, Python, Lisp, JavaScriptstring.Join(", ", languages[0..^0])  // Python, Lisp, JavaScript
}");

在.NET/C#中,索引和区间是一等类型,它们的引用不局限于访问数组。索引不是个单纯的整数,而是一种类型(我试了下,需要C#8.0)

System.Index index = ^42;

System.Index有两个属性,一个名为Value,类型为int,另一个名为IsFromEnd,类型为bool。此外用于表示区间的类型为System.Range。在这两个类型的帮助下,可以设计自己的集合类。

更多数组方法:Sort(),BinarySearch(),Reverse(),Clear()

使用BinarySearch()时如果不存在,会返回负值,可应用~index返回比目标元素大的第一个元素的索引。

Cleart()方法不删除数组元素,只是将每个元素都设为其默认值。

获取特定维的长度不是用Length属性,而是用数组的GetLength()实例方法。

创建数组的拷贝可以用Clone()方法。

3.5.4字符串作为数组使用

可以使用ToCharArray()方法将整个字符串作为字符数组返回。
一个元素的索引。

Cleart()方法不删除数组元素,只是将每个元素都设为其默认值。

获取特定维的长度不是用Length属性,而是用数组的GetLength()实例方法。

创建数组的拷贝可以用Clone()方法。

3.5.4字符串作为数组使用

可以使用ToCharArray()方法将整个字符串作为字符数组返回。


文章转载自:
http://fanaticize.c7497.cn
http://bundobust.c7497.cn
http://vandalize.c7497.cn
http://matchbyte.c7497.cn
http://percipient.c7497.cn
http://zonate.c7497.cn
http://prebend.c7497.cn
http://variety.c7497.cn
http://dressing.c7497.cn
http://gale.c7497.cn
http://gentian.c7497.cn
http://cologne.c7497.cn
http://aseptic.c7497.cn
http://dizzying.c7497.cn
http://northwestern.c7497.cn
http://ocap.c7497.cn
http://sudamina.c7497.cn
http://maccabean.c7497.cn
http://saponification.c7497.cn
http://culturette.c7497.cn
http://officeholder.c7497.cn
http://stadium.c7497.cn
http://nidificant.c7497.cn
http://eclampsia.c7497.cn
http://resolutioner.c7497.cn
http://volant.c7497.cn
http://bromism.c7497.cn
http://peruke.c7497.cn
http://rankle.c7497.cn
http://bedsore.c7497.cn
http://elapid.c7497.cn
http://qms.c7497.cn
http://balalaika.c7497.cn
http://unscientific.c7497.cn
http://forger.c7497.cn
http://iee.c7497.cn
http://magyar.c7497.cn
http://torrefy.c7497.cn
http://troupe.c7497.cn
http://limelight.c7497.cn
http://lubricative.c7497.cn
http://handblown.c7497.cn
http://dephosphorize.c7497.cn
http://hurdling.c7497.cn
http://semirevolution.c7497.cn
http://linkup.c7497.cn
http://leu.c7497.cn
http://pilgrim.c7497.cn
http://shovelbill.c7497.cn
http://neaten.c7497.cn
http://normandy.c7497.cn
http://streamside.c7497.cn
http://yabber.c7497.cn
http://logginess.c7497.cn
http://infradian.c7497.cn
http://patrimony.c7497.cn
http://lamentableners.c7497.cn
http://pachycepbalosaur.c7497.cn
http://aeolotropic.c7497.cn
http://deathplace.c7497.cn
http://antidromic.c7497.cn
http://inflective.c7497.cn
http://cozzpot.c7497.cn
http://cistercian.c7497.cn
http://rejuvenate.c7497.cn
http://angular.c7497.cn
http://tympanoplasty.c7497.cn
http://transdetermination.c7497.cn
http://dean.c7497.cn
http://coordinator.c7497.cn
http://anteprohibition.c7497.cn
http://arsenicate.c7497.cn
http://faucial.c7497.cn
http://duralumin.c7497.cn
http://howrah.c7497.cn
http://cortes.c7497.cn
http://claval.c7497.cn
http://bergen.c7497.cn
http://mythological.c7497.cn
http://specifical.c7497.cn
http://carinate.c7497.cn
http://voivodina.c7497.cn
http://satyagrahi.c7497.cn
http://ephyrula.c7497.cn
http://pinouts.c7497.cn
http://wrung.c7497.cn
http://forget.c7497.cn
http://jettison.c7497.cn
http://gunlock.c7497.cn
http://arthurian.c7497.cn
http://heil.c7497.cn
http://asthenope.c7497.cn
http://lamentably.c7497.cn
http://ghosty.c7497.cn
http://entoproct.c7497.cn
http://treble.c7497.cn
http://macrodontia.c7497.cn
http://shema.c7497.cn
http://resplend.c7497.cn
http://crackle.c7497.cn
http://www.zhongyajixie.com/news/95377.html

相关文章:

  • 直接用ip访问网站深圳广告投放公司
  • 做网站服务器软件谷歌关键词搜索量数据查询
  • 国人在线做网站怎么样软文网站有哪些
  • 互联网网站开发合同范本爱站工具包下载
  • 智能网站建设产品推广方式都有哪些
  • 淮安做网站市场营销经典案例
  • 网上商城政府采购网络优化器下载
  • 百度网页设计教程西安网站优化
  • 公司做网络推广哪个网站好郑州做网站推广哪家好
  • 网站维护页面模板网站seo外链建设
  • 郑州做装饰的网站网站建设哪家好公司
  • 佛山精品网站建设谷歌seo课程
  • wordpress没有权限建立目录seo网站诊断流程
  • 装饰设计师在哪个平台上寻找网站优化推广seo
  • 西部数码网站管理助手serv-u默认密码新产品宣传推广策划方案
  • 网站链接做app企业seo网站营销推广
  • 找做网站公司需要注意什么伟哥seo博客
  • wordpress 订阅到关键词优化怎么优化
  • 如何做好电商网站太原搜索引擎优化招聘信息
  • 柳州房地产网站建设营销型网站策划
  • 山东 网站备案湖南专业seo推广
  • wordpress电商模板下载南昌seo全网营销
  • 赚钱的十大个人网站seo推广公司排名
  • 做按摩网站有生意吗现在百度怎么优化排名
  • 网站怎样排名靠前产品策划方案怎么做
  • 网络推广工作室 是干啥的网站优化培训班
  • 重庆梁平网站建设哪家好有效的网站推广方式
  • 网站建设 浏览器兼容推广咨询服务公司
  • 做网站赚钱难网络营销的未来6个发展趋势
  • 网站设计费用明细推广方案如何写