伸进女同桌乳沟里摸爽了,小雪解开乳罩给老杨摸,少妇被按摩师摸高潮了,亲嘴扒胸摸屁股激烈视频,强摸秘书人妻大乳BD,摸BBB揉BBB揉BBB视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術(shù) >> 文章正文

C#中“+”的兩種功能

C#學習中,我們應(yīng)該都知道"+"號的使用方法,今天我們就來談一談它的使用,一般情況下認為"+"操作符有兩種功能,一種是做算術(shù)加,一種是做字符串的連接。

  今天看到一份文檔說,深入解析C#中兩個PLUS操作符執(zhí)行的不同操作,想了想,也的確應(yīng)該是這樣,IL代碼實例也表面這個觀點是正確的:

我們先寫一小段測試代碼:
namespace MSILTest
{
 class Program
 {
 static void Main(string[] args)
 {
 string a = "aaa"; 
 string b = a + "bbb"; 
 System.Console.WriteLine(b); 
 int c = 1; 
 int d = c + 1; 
 System.Console.WriteLine(d); 
 }
 }
}

  反編譯得到IL代碼:

.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 40 (0x28)
.maxstack 2
.locals init ([0] string a,
[1] string b,
[2] int32 c,
[3] int32 d)
IL_0000: nop
IL_0001: ldstr "aaa"
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldstr "bbb"
IL_000d: call string [mscorlib]System.String::Concat(string,
string)
IL_0012: stloc.1
IL_0013: ldloc.1
IL_0014: call void [mscorlib]System.Console::WriteLine(string)
IL_0019: nop
IL_001a: ldc.i4.1
IL_001b: stloc.2
IL_001c: ldloc.2
IL_001d: ldc.i4.1
IL_001e: add
IL_001f: stloc.3
IL_0020: ldloc.3
IL_0021: call void [mscorlib]System.Console::WriteLine(int32)
IL_0026: nop
IL_0027: ret
} // end of method Program::Main

  從上面的代碼中可以看到,在+連接字符串的時候,C#的Complier是把它轉(zhuǎn)換成為了帶兩個參數(shù)的Concat()函數(shù)。這個函數(shù)可以反編譯System.dll可以看到這個靜態(tài)的帶兩個參數(shù)的方法。

  而+在handle兩個number的時候,是直接轉(zhuǎn)換成為add操作指令的。
這“兩個”操作指令,完全沒有一點相似的地方。所以,我們需要把這不同功能的兩個+當成是兩個運算符來看待。

  同時,我們還可以稍為引申一下,關(guān)于C#中的強制類型轉(zhuǎn)換:
大家看這一句:
IL_0021: call 
void [mscorlib]System.Console::WriteLine(int32)
如果我們把
System.Console.WriteLine(d); 
改成
System.Console.WriteLine(’\u0041’); 
相應(yīng)的IL代碼就會轉(zhuǎn)變成為:
IL_0020: ldc.i4.s 65
IL_0022: call void [mscorlib]System.Console::WriteLine(char)

 由此我們可以得到結(jié)論:
  強制類型轉(zhuǎn)換,只不過是調(diào)用了一些方法的不同的重載的方法,而這個值本身是沒有變的。

  這個值在Stack的頂部,轉(zhuǎn)換前后都不變,只是編譯器來根據(jù)強制類型轉(zhuǎn)換相應(yīng)的代碼來選擇不同方法的不同的重載版本。

  跟蹤堆棧頂部數(shù)值,得到的結(jié)果也支持我們的這個結(jié)論。

作者:未知 | 文章來源:未知 | 更新時間:2007-11-12 16:44:16

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    j2se 嵌入式腳本抓取引擎
    NET Framework 2.0 Service Pack 2下載地址
    C#實現(xiàn)短信發(fā)送程序的例子
    .net學習:c#事件的深入分析
    基礎(chǔ)學習:java中使用存儲過程
    C#如何設(shè)置或者獲取目錄的權(quán)限?
    解析c#語言和java語言最相似的地方
    C#中如何才能調(diào)用QTP自動化對象
    解析.NET中的6各大的安全錯誤
    C#如何轉(zhuǎn)換AVI文件為BMP位圖文件
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·.net技術(shù) asp.net MVC3 Vi
    ·.net將視頻文件格式轉(zhuǎn)換成
    ·NET Framework 2.0 Servic
    ·如何動態(tài)修改winform的app
    ·asp,net軟件結(jié)構(gòu)設(shè)計和相關(guān)
    ·學習怎樣使用ASP.NET中的虛
    ·,net基礎(chǔ)類的學習:system
    ·.net學習:c#事件的深入分
    ·Facade Pattern學習總結(jié)
    ·C#如何設(shè)置或者獲取目錄的
    ·如何使用XSL來定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.zgna.net All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    寿宁县| 河津市| 新津县| 恭城| 阿克| 措勤县| 成安县| 德钦县| 宜君县| 贵溪市| 连云港市| 永清县| 汕尾市| 松溪县| 安岳县| 金秀| 合肥市| 曲阜市| 巩留县| 北辰区| 南投市| 昔阳县| 同德县| 阿拉善右旗| 呈贡县| 秭归县| 曲阜市| 宝鸡市| 鄢陵县| 克东县| 新营市| 保定市| 长葛市| 聂拉木县| 龙泉市| 庄河市| 洛扎县| 宣汉县| 延寿县| 五原县| 团风县|