色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C# 用來開發(fā)上位機(jī)挺舒服

STM32嵌入式開發(fā) ? 來源:STM32嵌入式 ? 作者:沈丹 ? 2021-06-27 10:31 ? 次閱讀

作為嵌入式開發(fā)者,已經(jīng)熟悉了C語言跟VS。推薦你也了解下C#,用來開發(fā)上位機(jī)挺舒服。如果你仔細(xì)與其它語言比較,就會(huì)感覺到很香。

C#良好兼容了值類型、引用類型,在發(fā)展中逐步解決了其他高級(jí)語言沒解決好的問題。很好的總結(jié)了前人的經(jīng)驗(yàn),在基礎(chǔ)語法上就區(qū)分了值類型和引用類型。對(duì)初次接觸編程的同學(xué)來說這一點(diǎn)容易造成學(xué)習(xí)障礙,但是只要掌握了它,就會(huì)給實(shí)際工作帶來極大便利。

反觀歷史,C#也曾經(jīng)因?yàn)椤爸殿愋?引用類型”飽受詬病,“拆箱”和“裝箱”一直是個(gè)招黑的設(shè)計(jì)。但后來我們看到,隨著泛型的成熟和普及,隨著泛型容器代替通用容器,裝箱和拆箱的問題已經(jīng)在很大程度上解決了。

還有對(duì)異步的支持等等,C#的設(shè)計(jì)最初帶來了一些問題,但是最終還是交上了一份滿意的答卷。

充分利用棧空間,非常高效,做了一部分C/C++擅長的事。

值類型有一大特點(diǎn),就是能充分利用棧空間。高級(jí)語言的GC特性一直飽受詬病,但下面的Unity常見代碼,運(yùn)行時(shí)沒有GC:

// 通過輸入的三維向量,移動(dòng)物體的位置void Move(Vector3 input){// 演示代碼,有意分成很多行 input = input.normalized; Vector3 move = input * 2.0f; move *= Time.deltaTime. transform.position += move; }

這段代碼沒有在堆上分配空間,你所看到的操作全都是在棧上進(jìn)行的,GC壓力為0。我認(rèn)為這是C#最令人驚艷的一點(diǎn)。

一般來說數(shù)組長度較長,默認(rèn)分配在堆上。但是C#也提供了便利的語法,在棧上分配數(shù)組,對(duì)項(xiàng)目后期優(yōu)化來說簡(jiǎn)直是神技:

public void unsafe foo(){int* bar = stackalloc int [10];}

沒錯(cuò),C#依然保留了指針,但一般僅用于局部的unsafe代碼。在局部熱點(diǎn)可以完全解放性能。

良好的語法設(shè)計(jì)和庫函數(shù)設(shè)計(jì),引導(dǎo)程序員寫出更快且更自然的代碼。

C#中最常用的容器List,也具有一些良好的設(shè)計(jì),當(dāng)然其它語言也有類似的優(yōu)點(diǎn):

// 新建一個(gè)list,長度為0。但在堆中預(yù)留10萬個(gè)位置 List《int》 list = new List《int》(100000);// 加入很多元素,由于容量足夠沒有GCfor (int i=0; i《89000; i++) {list.Add(i); }// 用過以后清空list,長度變成0list.Clear();// 但容量還是10萬,繼續(xù)增加元素還是沒有GCfor (int i = 0; i 《 99000; i++) {list.Add(i); }

list在預(yù)留空間充足時(shí),添加元素不會(huì)產(chǎn)生GC。而且List和值類型結(jié)合使用,在內(nèi)存占用上也有優(yōu)勢(shì)。當(dāng)然,很多其它語言也有類似的設(shè)計(jì),可以說別的語言做的好的部分,C#做的也一樣好。

繼承、泛型、接口、類型約束等等高級(jí)特性,都有著良好且自洽的設(shè)計(jì)。

最初接觸C#的時(shí)候,看看int的原型,收獲很大:

public struct Int32 : IFormattable, IConvertible, IComparable, IComparable《Int32》, IEquatable《Int32》 {// 。..。 }

熟悉C++的人,經(jīng)過思考,可以很好的理解IComparable、IEquatable以及它們的泛型形式。同時(shí)也能猜出“Interface”的概念。思考C#的底層設(shè)計(jì),給人的感覺就是自然、規(guī)范、恰到好處。

總之,C#語言及其標(biāo)準(zhǔn)庫的設(shè)計(jì),非常值得借鑒和推崇。

C#的良好設(shè)計(jì)讓它有著越來越廣泛的應(yīng)用。有C語言基礎(chǔ)的朋友可以快速上手C#,適合開發(fā)單片機(jī)的上位機(jī)。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19140

    瀏覽量

    305866
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7605

    瀏覽量

    137027
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4793

    瀏覽量

    68701

原文標(biāo)題:用C#開發(fā)上位機(jī)挺舒服,文末送資料

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F103上位機(jī)升級(jí),RS485升級(jí)、CAN升級(jí)

    外置Flash。該開發(fā)板提供上位機(jī)升級(jí)軟件,購買者可使用該上位機(jī)配合我們的升級(jí)例程學(xué)習(xí)給MCU在線更新升級(jí)
    發(fā)表于 01-03 08:57

    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)之C#上位機(jī)編程

    使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)功能
    的頭像 發(fā)表于 12-24 10:54 ?136次閱讀
    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)之<b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b>編程

    上位機(jī)編程語言選擇 上位機(jī)在自動(dòng)化中的作用

    上位機(jī)編程語言選擇 在自動(dòng)化領(lǐng)域,上位機(jī)(Upper Computer)通常指的是與下位機(jī)(如PLC、單片
    的頭像 發(fā)表于 12-04 10:25 ?342次閱讀

    上位機(jī)系統(tǒng)架構(gòu)分析 上位機(jī)與下位機(jī)的區(qū)別

    上位機(jī)系統(tǒng)架構(gòu)分析 1. 上位機(jī)的定義與作用 上位機(jī)通常指的是在控制系統(tǒng)中負(fù)責(zé)決策、數(shù)據(jù)處理和用
    的頭像 發(fā)表于 12-04 10:17 ?564次閱讀

    以太網(wǎng)IO控制卡:C#實(shí)時(shí)讀寫時(shí)間測(cè)試

    C#語言進(jìn)行ECI IO卡的項(xiàng)目開發(fā)和快速讀取多個(gè)IO狀態(tài)與上位機(jī)交互速度的測(cè)試結(jié)果
    的頭像 發(fā)表于 11-21 13:50 ?229次閱讀
    以太網(wǎng)IO控制卡:<b class='flag-5'>C#</b>實(shí)時(shí)讀寫時(shí)間測(cè)試

    上位機(jī)與下位機(jī)實(shí)時(shí)通信的實(shí)現(xiàn)

    在工業(yè)自動(dòng)化、遠(yuǎn)程控制、數(shù)據(jù)采集與處理等領(lǐng)域,上位機(jī)與下位機(jī)之間的實(shí)時(shí)通信是實(shí)現(xiàn)高效、準(zhǔn)確的數(shù)據(jù)交換和系統(tǒng)控制的基礎(chǔ)。本文旨在介紹實(shí)現(xiàn)上位機(jī)
    的頭像 發(fā)表于 06-28 17:01 ?1583次閱讀

    STM8AF系列想要通過LINUART下載固件,是不是要自己開發(fā)上位機(jī)呢?

    STM8AF系列想要通過LINUART下載固件,是不是要自己開發(fā)上位機(jī)
    發(fā)表于 06-21 07:57

    單片機(jī)上位機(jī)軟件用什么開發(fā)

    機(jī)軟件,首先需要選擇一個(gè)合適的開發(fā)環(huán)境。開發(fā)環(huán)境通常包括集成開發(fā)環(huán)境(IDE)、編譯器、調(diào)試器等工具。以下是一些常見的開發(fā)環(huán)境: Visua
    的頭像 發(fā)表于 06-07 09:17 ?1400次閱讀

    上位機(jī)控制界面用什么做好

    在設(shè)計(jì)上位機(jī)控制界面時(shí),選擇合適的開發(fā)工具和框架至關(guān)重要。本文介紹如何創(chuàng)建一個(gè)優(yōu)秀的上位機(jī)控制界面。 引言
    的頭像 發(fā)表于 06-06 10:54 ?973次閱讀

    上位機(jī)軟件開發(fā)用什么語言

    維護(hù)的上位機(jī)軟件至關(guān)重要。本文將詳細(xì)介紹幾種常用的上位機(jī)軟件開發(fā)編程語言,并分析它們的優(yōu)缺點(diǎn)。 C
    的頭像 發(fā)表于 06-06 10:44 ?1948次閱讀

    上位機(jī)和下位機(jī)是什么意思 上位機(jī)和下位機(jī)的區(qū)別

    上位機(jī)和下位機(jī)是計(jì)算機(jī)控制系統(tǒng)中兩個(gè)重要的概念,它們?cè)诳刂啤⑼ㄐ藕蛿?shù)據(jù)處理等方面發(fā)揮著關(guān)鍵作用。在本文中,我們將詳細(xì)探討上位機(jī)和下位
    的頭像 發(fā)表于 06-06 10:11 ?5966次閱讀

    簡(jiǎn)單易用的以太網(wǎng)數(shù)據(jù)采集卡應(yīng)用開發(fā)C#

    C#語言以太網(wǎng)數(shù)據(jù)采集卡的開發(fā)
    的頭像 發(fā)表于 05-17 14:25 ?790次閱讀
    簡(jiǎn)單易用的以太網(wǎng)數(shù)據(jù)采集卡應(yīng)用<b class='flag-5'>開發(fā)</b>之<b class='flag-5'>C#</b>

    請(qǐng)問上位機(jī)軟件怎樣接收ST-LINK上傳給PC的燒錄反饋信息?

    本人工作原因要用C#編寫上位機(jī)軟件,通過調(diào)用批處理文件(調(diào)用ST-LINK_CLI.exe)完成STM32芯片燒錄。 現(xiàn)在遇到的問題是,我的上位機(jī)
    發(fā)表于 04-09 08:10

    下位機(jī)CY7C68013A發(fā)送數(shù)據(jù),上位機(jī)C#讀取數(shù)據(jù),會(huì)丟幀或者幀內(nèi)錯(cuò)位的原因?

    下位機(jī)CY7C68013A發(fā)送數(shù)據(jù),上位機(jī)C#在1個(gè)while循環(huán)內(nèi)不斷地讀取數(shù)據(jù),510字節(jié)1幀,1秒333幀、1秒667幀、1秒1333
    發(fā)表于 02-27 07:31

    項(xiàng)目工程下載與XML配置文件下載:EtherCAT超高速實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1032H上位機(jī)C#開發(fā)

    運(yùn)動(dòng)控制上位機(jī)
    正運(yùn)動(dòng)技術(shù)
    發(fā)布于 :2024年01月22日 09:20:13
    主站蜘蛛池模板: 美女被日出水| xxxx美国老师1819| 午夜福利免费0948视频| 双性精跪趴灌满h室友4p| 日本人添下面的全过程| 色欲AV精品人妻一二三区| 午夜福利小视频400| 亚洲人成伊人成综合网久久久| 亚洲伊人久久大香线蕉综合图片| 永久精品免费影院在线观看网站 | 国产亚洲精品网站在线视频| 寂寞夜晚视频在线观看| 伦 乱真实故事| 欧美一区二区三区播放| 特大巨黑人吊性xxxxgay| 亚洲乱亚洲乱妇13p| 4484在线观看视频| 成人毛片100部免费看| 国产强奷伦奷片| 久久伊人在| 日韩黄色软件| 亚洲精品高清中文字幕完整版 | 欧美巨大xxxx做受高清| 色久久久综合88一本道| 亚洲精品色播一区二区| 91麻豆精品| 国产69精品久久久久APP下载| 护士喂我吃乳液我脱她内裤| 免费国产成人手机在线观看| 撕烂衣服扒开胸罩揉爆胸| 亚洲中文 字幕 国产 综合| ass女人下部欣赏| 国产人妻麻豆蜜桃色69| 毛片在线不卡| 丝袜情趣在线资源二区| 在线亚洲精品福利网址导航| 成年人深夜福利| 精品一区二区三区免费观看| 清冷受被CAO的合不拢| 亚洲精品视频免费| jlzzzjizzzjlzzz亚洲|