前言
有群友問:為什么C#要采用頂級(jí)語(yǔ)句?
.NET6發(fā)布后,C#10莫名引入了頂級(jí)語(yǔ)句,這是一種簡(jiǎn)化代碼結(jié)構(gòu)的語(yǔ)言特性。在此之前,C#程序必須包含一個(gè)入口點(diǎn),通常是Main方法,然后在該方法中編寫主要的程序邏輯。而使用頂級(jí)語(yǔ)句后,可以直接在文件的頂部編寫執(zhí)行代碼,而無需顯式地定義一個(gè)Main方法。為啥要用頂級(jí)語(yǔ)句呢?先來看官方的總結(jié):“使用頂級(jí)語(yǔ)句,可以更輕松地創(chuàng)建簡(jiǎn)單的程序來探索新的算法??梢試L試使用不同的代碼片段來試驗(yàn)算法。了解了哪些可用后,可以重構(gòu)代碼,使其更易于維護(hù)。接下來本文將介紹為什么引入了頂級(jí)語(yǔ)句。
為什么會(huì)引入
隨著Python的普及,微軟也與時(shí)俱進(jìn),拋棄了Main函數(shù)。當(dāng)然還是如下幾點(diǎn)。
1、簡(jiǎn)化入門:頂級(jí)語(yǔ)句使得編寫小型程序或?qū)W習(xí) C# 變得更加簡(jiǎn)單。你可以直接在文件中編寫代碼,而不必?fù)?dān)心方法和類的結(jié)構(gòu)。
2、減少模板代碼:在傳統(tǒng)的C#程序中,你需要定義類和方法,即使只是寫一小段代碼。頂級(jí)語(yǔ)句減少了這種冗余,使得代碼更加緊湊和易讀。
3、更自然的腳本體驗(yàn):頂級(jí)語(yǔ)句讓 C# 更接近腳本語(yǔ)言的使用體驗(yàn)。你可以像寫Pyhton、javascript腳本一樣編寫一些簡(jiǎn)單的程序,而不必?fù)?dān)心類和方法的聲明。
此功能是不是多此一舉呢?
由于使用習(xí)慣傳統(tǒng)有main函數(shù)的.NET項(xiàng)目,突然來個(gè)頂級(jí)語(yǔ)句還真有點(diǎn)不習(xí)慣,小編有時(shí)候在創(chuàng)建項(xiàng)目的時(shí)候就選擇了禁用它。那么頂級(jí)語(yǔ)句做了徹底改變嗎?它是多此一舉嗎?我們看看它的底層是啥?
首先新建一個(gè)頂級(jí)語(yǔ)句的.NET8的控制臺(tái)項(xiàng)目,并輸出如下代碼。
Console.WriteLine("Hello, 歡迎關(guān)注dotNET開發(fā)跳槽!");
然后我們使用ILspy反編譯工具來看看生成的代碼是啥?
結(jié)論:經(jīng)過反編譯底層還是有main方法??梢哉f明C#本質(zhì)上沒有改變,主要還是為開發(fā)者提供更簡(jiǎn)潔、更易上手的編程體驗(yàn)。從某種意義上來說它也是C#的語(yǔ)法糖。
大家對(duì)C#要采用頂級(jí)語(yǔ)句有啥看法,歡迎留言討論。文章來源:http://www.zghlxwxcb.cn/news/detail-790268.html
參考:Learn.microsoft.com/zh-cn/dotnet/csharp/tutorials/top-level-statements文章來源地址http://www.zghlxwxcb.cn/news/detail-790268.html
來源公眾號(hào):DotNet開發(fā)跳槽???
到了這里,關(guān)于為什么C#要采用頂級(jí)語(yǔ)句?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!