在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

STM32嵌入式開發(fā) ? 來源:STM32嵌入式 ? 作者:沈丹 ? 2021-06-27 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

反觀歷史,C#也曾經因為“值類型/引用類型”飽受詬病,“拆箱”和“裝箱”一直是個招黑的設計。但后來我們看到,隨著泛型的成熟和普及,隨著泛型容器代替通用容器,裝箱和拆箱的問題已經在很大程度上解決了。

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

充分利用??臻g,非常高效,做了一部分C/C++擅長的事。

值類型有一大特點,就是能充分利用??臻g。高級語言的GC特性一直飽受詬病,但下面的Unity常見代碼,運行時沒有GC:

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

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

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

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

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

良好的語法設計和庫函數設計,引導程序員寫出更快且更自然的代碼。

C#中最常用的容器List,也具有一些良好的設計,當然其它語言也有類似的優(yōu)點:

// 新建一個list,長度為0。但在堆中預留10萬個位置 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在預留空間充足時,添加元素不會產生GC。而且List和值類型結合使用,在內存占用上也有優(yōu)勢。當然,很多其它語言也有類似的設計,可以說別的語言做的好的部分,C#做的也一樣好。

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

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

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

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

總之,C#語言及其標準庫的設計,非常值得借鑒和推崇。

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

編輯:jq

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

    關注

    5148

    文章

    19651

    瀏覽量

    317096
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141479
  • 代碼
    +關注

    關注

    30

    文章

    4899

    瀏覽量

    70617

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

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C#上位與運動控制卡網絡通訊的周期上報

    使用C#上位編程實現運動控制卡網絡通訊的周期上報功能
    的頭像 發(fā)表于 06-26 13:59 ?113次閱讀
    <b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>機</b>與運動控制卡網絡通訊的周期上報

    C#上位與運動控制卡網絡通訊的周期上報 #正運動技術 #正運動 #運動控制卡 #

    上位
    正運動技術
    發(fā)布于 :2025年06月26日 09:51:20

    下位CY7C68013A發(fā)送數據,上位C#讀取數據,510字節(jié)一幀,會丟幀或者幀內錯位是怎么回事?

    下位CY7C68013A發(fā)送數據,上位C#在1個while循環(huán)內不斷地讀取數據,510字節(jié)1幀,1秒333幀、1秒667幀、1秒1333
    發(fā)表于 05-30 07:43

    玩轉C#/LABVIEW,斯撩

    **labview軟件開發(fā) C#軟件開發(fā) C#自定義控件Labview調用 labview和C#組合開發(fā)
    發(fā)表于 04-02 22:44

    STM32/GD32開發(fā)板基本串口RS232\\RS485通信及CAN接口 usbhid升級 U盤升級 sd卡升級升級學習方案開發(fā)

    使用VS2022開發(fā)平臺,C#語言開發(fā),該開發(fā)板提供上位機工程源碼。 bin文件AES256加密解密升級功能!有以下例程:1、CAN總線升級
    發(fā)表于 02-27 14:56

    C#中使用OpenVINO?:輕松集成AI模型!

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 C#不僅在PC游戲開發(fā)、大型商業(yè)系統(tǒng)領域應用廣泛,還成為開源測控、機器視覺與運動控制,以及PC數集與分析領域中的主流開發(fā)語言! 在開源測控、機器視覺、數采
    的頭像 發(fā)表于 02-07 14:05 ?830次閱讀
    <b class='flag-5'>C#</b>中使用OpenVINO?:輕松集成AI模型!

    C#基于Halcon實現Basler相機采圖

    C#基于Halcon實現Basler相機采圖
    發(fā)表于 01-05 09:16 ?0次下載

    STM32F103上位升級,RS485升級、CAN升級

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

    運動控制卡網絡通訊的心跳檢測之C#上位編程

    使用C#上位編程實現運動控制卡網絡通訊的心跳檢測功能
    的頭像 發(fā)表于 12-24 10:54 ?1099次閱讀
    運動控制卡網絡通訊的心跳檢測之<b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>機</b>編程

    上位編程語言選擇 上位在自動化中的作用

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

    上位系統(tǒng)架構分析 上位與下位的區(qū)別

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

    以太網IO控制卡:C#實時讀寫時間測試

    C#語言進行ECI IO卡的項目開發(fā)和快速讀取多個IO狀態(tài)與上位交互速度的測試結果
    的頭像 發(fā)表于 11-21 13:50 ?647次閱讀
    以太網IO控制卡:<b class='flag-5'>C#</b>實時讀寫時間測試

    Labview上位軟件開發(fā)

    現我公司有個項目需要Labview上位軟件開發(fā),應用為數據采集,硬件為廠家采集卡。具體軟件需求電聯(lián)或+V: 15228164111。
    發(fā)表于 11-18 16:24

    學習QT開發(fā)上位記錄--(1.工具記錄篇)

    1.使用的QT版本 2.設置編碼格式顯示中文 中文設置步驟 中文字符測試結果: 3.將上位打包為exe可執(zhí)行文件指令 將[Debug模式]變更[Release模式] 選擇下圖紅色框中這個程序進入 如果在Q安裝位置和工程建立位置在不同系統(tǒng)盤中,比如: 生成成功圖片 審核編
    的頭像 發(fā)表于 10-28 10:06 ?1083次閱讀
    學習QT<b class='flag-5'>開發(fā)上位</b><b class='flag-5'>機</b>記錄--(1.工具記錄篇)

    PCIe實時運動控制卡的雙盤視覺篩選機上位開發(fā)應用

    PCIe實時運動控制卡的雙盤視覺篩選機上位開發(fā)應用
    的頭像 發(fā)表于 10-10 10:15 ?756次閱讀
    PCIe實時運動控制卡的雙盤視覺篩選機<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>應用
    主站蜘蛛池模板: 999av视频| 亚洲www视频 | 人人成人免费公开视频 | 精品国产第一页 | 天天色天 | 4hu四虎永久免在线视 | 日本美女黄色一级片 | 国产片翁熄系列乱在线视频 | 欧美高清一级 | 日本不卡视频 | 一级毛片真人免费播放视频 | 李老汉和小花的性生生活 | 亚洲天堂电影在线观看 | 好色999| 免费视频播放 | 午夜啪啪福利视频 | 91精品欧美激情在线播放 | 亚洲狠狠色丁香婷婷综合 | 黑森林福利视频导航 | 91极品女神私人尤物在线播放 | 精品无码中出一区二区 | 在线亚洲日产一区二区 | 天天操夜夜操免费视频 | 亚洲狠狠狠一区二区三区 | 国产中文字幕一区 | 97dyy影院理论片| 明日花绮罗snis-862在线播放 | 在线天堂中文在线网 | 李老汉和小花的性生生活 | 欧美成人午夜精品免费福利 | www.亚洲免费| 成人淫片 | 色天天综合 | 欧美视频a | 在线免费看高清视频大全 | 人人洗澡人人洗澡人人 | 丁香激情五月 | 国产免费资源 | 免费人成网址在线观看国内 | 欧洲熟色妇 | 国产亚洲欧美成人久久片 |