成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

常用Console.WriteLine原理,你知道嗎?

開(kāi)發(fā) 前端
有沒(méi)有好奇過(guò),它是如何通過(guò)從托管到非托管把字符串打印輸出到屏幕上的呢?本篇來(lái)看下,原理呢其實(shí)非常簡(jiǎn)單,通過(guò)CLR一系列的調(diào)用System.Console.dll里面的托管函數(shù)之后,最后會(huì)調(diào)用微軟原生的Windows動(dòng)態(tài)鏈接庫(kù)kernel32.dll里面的函數(shù)WriteFile。

.NET里面如果有一個(gè)函數(shù)調(diào)用最多,那么莫過(guò)于Console.WriteLine了。它無(wú)處不在,基本上是.NET初學(xué)者入門的第一個(gè)函數(shù)調(diào)用,比如打印出那個(gè)著名的Hello World字符串。

static void Main(string[] args)
{
    Console.WriteLine("Hello World");
}

有沒(méi)有好奇過(guò),它是如何通過(guò)從托管到非托管把字符串打印輸出到屏幕上的呢?本篇來(lái)看下,原理呢其實(shí)非常簡(jiǎn)單,通過(guò)CLR一系列的調(diào)用System.Console.dll里面的托管函數(shù)之后,最后會(huì)調(diào)用微軟原生的Windows動(dòng)態(tài)鏈接庫(kù)kernel32.dll里面的函數(shù)WriteFile。

WriteFile頭文件在fileapi.h,它的作用是將數(shù)據(jù)寫(xiě)入指定的文件或輸入/輸出 (I/O) 設(shè)備,原型如下:

BOOL WriteFile(
  [in]                HANDLE       hFile,
  [in]                LPCVOID      lpBuffer,
  [in]                DWORD        nNumberOfBytesToWrite,
  [out, optional]     LPDWORD      lpNumberOfBytesWritten,
  [in, out, optional] LPOVERLAPPED lpOverlapped
);

返回值bool類型標(biāo)識(shí)了,寫(xiě)入成功或者失敗。

那么這個(gè)Console.WriteLine調(diào)用如下:

WriteLine(托管)-》
g__EnsureInitialized(托管)-》
GetStandardFile(托管)-》
ConsoleHandleIsWritable(托管)-》
WriteFile(非托管)

再引申下,Console.ReadLine呢?它跟Console.WriteLine是一樣的,不過(guò)它最后調(diào)用的是ReadFile函數(shù)了,從指定的文件或輸入/輸出 (I/O) 設(shè)備讀取數(shù)據(jù)。讀取發(fā)生在文件指針指定的位置。

責(zé)任編輯:武曉燕 來(lái)源: 江湖評(píng)談
相關(guān)推薦

2024-02-22 16:58:56

.NET9LinuxConsole

2020-12-24 15:26:07

Redis數(shù)據(jù)庫(kù)

2023-06-08 08:06:07

error錯(cuò)誤頁(yè)原理

2021-09-13 19:28:42

JavaNetty開(kāi)發(fā)

2020-11-26 07:48:24

Shell 腳本內(nèi)置

2024-05-28 09:12:10

2024-04-07 00:00:00

ESlint命令變量

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-12-12 08:41:01

2023-04-26 10:21:04

2018-09-07 15:23:16

2024-06-12 08:05:06

2024-11-01 10:48:01

C#WPF程序

2020-02-20 08:30:49

OSPF網(wǎng)絡(luò)協(xié)議路由協(xié)議

2021-04-20 23:16:06

SparkSQL語(yǔ)法

2022-12-02 14:12:52

新能源汽車海爾

2024-07-08 00:00:01

多線程ThreadC#

2025-02-18 08:11:17

2024-09-18 07:00:00

消息隊(duì)列中間件消息隊(duì)列
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 在线国产欧美 | 超碰在线97国产 | 国产精品久久777777 | 青青草在线视频免费观看 | 国产精品永久在线观看 | 一区二区三区国产好 | 色网站在线免费观看 | 日韩久久精品 | 国产精品视频在 | 成人欧美一区二区三区在线播放 | www狠狠干 | 精品一区二区三区在线视频 | 伊人网站 | 黄色大片在线免费观看 | 成人久久久久 | 色婷婷综合网 | 日韩欧美网 | 国产欧美一区二区三区日本久久久 | 成人在线欧美 | 性色网站 | 婷婷色国产偷v国产偷v小说 | 一区二区电影网 | 超碰在线人 | 99精品国产一区二区青青牛奶 | 精品国产一区二区在线 | 国产精品乱码一二三区的特点 | 大香网伊人 | 久久久久国产 | 国产人免费人成免费视频 | 精品久| 亚洲精品电影在线观看 | 色五月激情五月 | av毛片在线免费观看 | 欧美三级免费观看 | 一区二区三区高清 | 高清欧美性猛交 | 久久久久久天堂 | 欧美精品99 | 999精品视频| 精品乱人伦一区二区三区 | 久久99精品久久久久久国产越南 |