C#本质论读书笔记:第一章 C#概述|第二章 数据类型
第一章
namespace testDemo
{
classProgram
{
staticvoidMain(string[] args)
{
string a ="hello"+"wlz";
string b ="hello";
b +="wlz";
StringBuilder c =newStringBuilder("hello");
c.Append("wlz");
string d ="hello";
string.Concat(d,"wlz");
Console.Write(a);
}
}
}
.classprivateauto ansi beforefieldinit testDemo.Program
extends[mscorlib]System.Object
{
// Methods
.method private hidebysig static
voidMain(
string[] args
) cil managed
{
// Method begins at RVA 0x2050
// Code size 74 (0x4a)
.maxstack 2
.entrypoint
.locals init (
[0]string a,
[1]string b,
[2]class[mscorlib]System.Text.StringBuilder c,
[3]string d
)
IL_0000: nop
IL_0001: ldstr "hellowlz"
IL_0006: stloc.0
IL_0007: ldstr "hello"
IL_000c: stloc.1
IL_000d: ldloc.1
IL_000e: ldstr "wlz"
IL_0013: call string[mscorlib]System.String::Concat(string,string)
IL_0018: stloc.1
IL_0019: ldstr "hello"
IL_001e: newobj instance void[mscorlib]System.Text.StringBuilder::.ctor(string)
IL_0023: stloc.2
IL_0024: ldloc.2
IL_0025: ldstr "wlz"
IL_002a: callvirt instance class[mscorlib]System.Text.StringBuilder[mscorlib]System.Text.StringBuilder::Append(string)
IL_002f: pop
IL_0030: ldstr "hello"
IL_0035: stloc.3
IL_0036: ldloc.3
IL_0037: ldstr "wlz"
IL_003c: call string[mscorlib]System.String::Concat(string,string)
IL_0041: pop
IL_0042: ldloc.0
IL_0043: call void[mscorlib]System.Console::Write(string)
IL_0048: nop
IL_0049: ret
}// end of method Program::Main
.method public hidebysig specialname rtspecialname
instance void.ctor () cil managed
{
// Method begins at RVA 0x20a6
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void[mscorlib]System.Object::.ctor()
IL_0006: ret
}// end of method Program::.ctor
}// end of class testDemo.Program
var person =new{ name="wlz",phone="12346"};
[4]class'<>f__AnonymousType0`2'<string,string> person,
IL_004f: ldstr "wlz"
IL_0054: ldstr "12346"
IL_0059: newobj instance voidclass'<>f__AnonymousType0`2'<string,string>::.ctor(!0,!1)
int? nullNum =null;
int num =42;
[5] valuetype [mscorlib]System.Nullable`1<int32> nullNum,
[6]int32 num
IL_0060: ldloca.s nullNum
IL_0062: initobj valuetype [mscorlib]System.Nullable`1<int32>
IL_0068: ldc.i4.s 42
IL_006a: stloc.s num
int bigNum =int.MaxValue;//2147483647
int result = bigNum +1;
Console.WriteLine(result);//result的值是-2147483648
.locals init (
[0]int32 bigNum,
[1]int32 result
)
IL_0000: nop
IL_0001: ldc.i4 2147483647
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldc.i4.1
IL_0009: add
IL_000a: stloc.1
IL_000b: ldloc.1
checked
{
int bigNum =int.MaxValue-1;
int result = bigNum +1;
}
.locals init (
[0]int32 bigNum,
[1]int32 result
)
IL_0000: nop
IL_0001: nop
IL_0002: ldc.i4 2147483646
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: ldc.i4.1
IL_000a: add.ovf
IL_000b: stloc.1
IL_000c: ldloc.1
string text ="9.11E-31";
//Parse
float parseFloat =float.Parse(text);
float tryParseFloat;
//TryParse
bool successParseFloat =float.TryParse(text,out tryParseFloat);
//ToString
string floatToString=tryParseFloat.ToString();
string floatConvertToString=Convert.ToString(parseFloat);
Console.WriteLine(parseFloat);
.locals init (
[0]string text,
[1]float32 parseFloat,
[2]float32 tryParseFloat,
[3] bool successParseFloat,
[4]string floatToString,
[5]string floatConvertToString,
[6] bool CS$4$0000
)
IL_0000: nop
IL_0001: nop
IL_0002: ldstr "9.11E-31"
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: call float32[mscorlib]System.Single::Parse(string)
IL_000e: stloc.1//将得到的值出栈(不是入栈)
IL_000f: ldloc.0
IL_0010: ldloca.s tryParseFloat
IL_0012: call bool [mscorlib]System.Single::TryParse(string,float32&)
IL_0017: stloc.3
IL_0018: ldloca.s tryParseFloat
IL_001a: call instance string[mscorlib]System.Single::ToString()
IL_001f: stloc.s floatToString
IL_0021: ldloc.1
IL_0022: call string[mscorlib]System.Convert::ToString(float32)
IL_0027: stloc.s floatConvertToString
IL_0029: ldloc.1
IL_002a: call void[mscorlib]System.Console::WriteLine(float32)
IL_002f: nop
IL_0030: ldloc.3
IL_0031: ldc.i4.0
IL_0032: ceq
IL_0034: stloc.s CS$4$0000
IL_0036: ldloc.s CS$4$0000
IL_0038: brtrue.s IL_0043
string[] languages;
string[] languages={"C#","Java"};
string[] languages;
languages=newstring[]{"C#","Java"};
string[] lanua =newstring[]{"C#","Java"};
int[,] table =newint[3,3];
int[][] crosstable =
{
newint[]{1,0,2},
newint[]{3,2},
newint[]{1},
newint[]{}
};
crosstable[2][2]=1;
bool[,,] cells =new bool[2,3,4];
System.Console.WriteLine(cells.GetLength(2));//获取第三个维度,得到4
System.Console.WriteLine(cells.Length);//24
C#本质论读书笔记:第一章 C#概述|第二章 数据类型的更多相关文章
- 【读书笔记】C#高级编程 第二章 核心C#
(一)第一个C#程序 创建一个控制台应用程序,然后输入代码,输入完毕后点击F5 Console.WriteLine();这条语句的意思:把括号内的内容输出到界面上: Console.ReadKey() ...
- 《Linux内核设计与实现》读书笔记——第一、 二章
<Linux内核设计与实现>读书笔记--第一. 二章 标签(空格分隔): 20135321余佳源 第一章 Linux内核简介 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确 ...
- 《javascript权威指南》读书笔记——第一篇
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...
- 《C#从现象到本质》读书笔记(九)第11章C#的数据结构
<C#从现象到本质>读书笔记(九)第11章C#的数据结构 C#中的数据结构可以分为两类:非泛型数据结构和泛型数据结构. 通常迭代器接口需要实现的方法有:1)hasNext,是否还有下一个元 ...
- 《C#从现象到本质》读书笔记(八)第10章反射
<C#从现象到本质>读书笔记(八)第10章反射 个人感觉,反射其实就是为了能够在程序运行期间动态的加载一个外部的DLL集合,然后通过某种办法找到这个DLL集合中的某个空间下的某个类的某个成 ...
- 《C#从现象到本质》读书笔记(七)第9章 泛型
<C#从现象到本质>读书笔记(七)第9章 泛型 泛型的三大好处:类型安全,增强性能(避免装箱和拆箱),代码复用. 泛型方法是传入的参数至少有一个类型为T(尚未制定的类型,根据微软的命名规则 ...
- 《C#从现象到本质》读书笔记(五)第5章字符串第6章垃圾回收第7章异常与异常处理
<C#从现象到本质>读书笔记(五)第5章字符串 字符串是引用类型,但如果在某方法中,将字符串传入另一方法,在另一方法内部修改,执行完之后,字符串的只并不会改变,而引用类型无论是按值传递还是 ...
- ASM学习笔记--ASM 4 user guide 第二章要点翻译总结
参考:ASM 4 user guide 第一部分 core API 第二章 类 2.1.1概观 编译后的类包括: l 一个描述部分:包括修饰语(比如public或private).名字.父类.接口 ...
- JS高程读书笔记-第一、二章-内附在线思维导图和quizlet卡片
之前在kindle上买了高程,今天又到了纸质的<JavaScript语言精粹>,<高性能JavaScript>,<JavaScipt设计模式>,开始读书之旅啦. 我 ...
随机推荐
- android中的事件传递和处理机制
一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己 ...
- C# 图片处理(压缩、剪裁,转换,优化)
1.图片与二进制的转换 图片转换成二进制主要用于数据库存储及图片数据的应用间传输,如网站服务器通过WebService或WCF从数据处理服务器获取图片数据,就可以以二进制形式传输 ///图片转二进制 ...
- x-forwarded-for的深度挖掘
转自:http://www.cnblogs.com/yihang/archive/2010/12/19/1910365.html 如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有 ...
- 在安装SqlServer2008时,有一项安装程序支持规则,为什么重新启动计算机那一项总是失败
1.运行 regedit 打开注册表编辑器. 2.依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager目录,找 ...
- linux中C语言获取高精度时钟gettimeofday函数
前言: 在开发中,很多时候需要知道各个函数或者是某些设备对命令的操作用时,因此需要用到 gettimeofday 来获取当前时钟. 一,函数说明 #include int gettimeofd ...
- SQL Server 2012 AlwaysOn集群配置指南
1. AlwaysOn介绍 AlwaysOn是SQL Server 2012提供的全新综合.灵活.高效经济的高可用性和灾难恢复解决方案.它整合了镜像和群集的功能,基于OS 故障转移群集(Windows ...
- java Memorymapfile demo
String lineseperator = java.security.AccessController .doPrivileged(new sun.security.action.GetPrope ...
- DimDate populate data
日期维度 任何一个数据仓库都应该有一个日期维度. 因为很少有不需要通过日期维度看数据的情况存在. 日期维度的好处是,你可以通过他连接各个事实表,然后在报表端传送报表参数的时候, 直接自动过滤日期维度的 ...
- 什么办法可以替代distinct
今天在论坛上看到一个面试题,是说有什么办法可以替代distinct,得到同样的结果.答案都被大家说的差不多了,发现挺有意思的,就记录一下: SQL> select num from t1; ...
- Laxcus大数据管理系统2.0(5)- 第三章 数据存取
第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...