MINI類-結構體

文章目錄

  • 結構體的定義和使用
    • 實例
  • 類和結構體的關系

  • 博主寫作不容易,孩子需要您鼓勵
  • 萬水千山總是情 , 先點個贊行不行

結構體與類相似,通常用來封裝小型的相關變量組,例如,學生的學號、姓名、性別、年齡等。結構是一種值類型,通常創建結構要比創建類的速度快。如果需要一些緊湊循環,需要在其中創建大量的新數據結構,則應考慮結構體而不是類。

結構體的定義和使用

在C#中,可以將結構看成輕量級的類。定義結構的定義類相似,采用struct進行定義,每個struct類型數據可以是常量、變量、構造函數、方法和屬性等成員。

  • 語法格式如下:
  • <訪問修飾符> struct 結構名{//結構體定義}
    

    使用結構通過聲明結構體變量或使用new來實例化結構體對象,然后通過“結構體變量.結構成員名”“結構對象.結構成員”的方式來使用結構。

    實例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;namespace test
    {class Program{static void Main(string[] args){Student Stu1;Stu1.stuNum = "14031403";Stu1.stuName = "小明";Stu1.stuAge = 19;Stu1.stuClass = 1;Stu1.stuGrade = 12;Console.WriteLine("結構體演示");Console.WriteLine("學生 " + Stu1.stuName .ToString()+":");Console.WriteLine("學號:{0},年齡:{1},年級:{2},班級:{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("調用結構體方法演示");Console.WriteLine("學生 " + Stu1.stuName .ToString() + ":");Console.WriteLine("學號:{0},年齡:{1},年級:{2},班級:{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("調用結構體構造函數演示");Console.WriteLine("學生 " + stu2.stuName .ToString() + ":");Console.WriteLine("學號:{0},年齡:{1},年級:{2},班級:{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student                   //定義結構體Student{public String stuNum;               //定義結構成員表示學生學號public String stuName;              //定義結構成員表示學生名字public int stuAge;                  //定義結構成員表示學生年齡public int stuClass;                //定義結構成員表示學生班級public int stuGrade;                //定義結構成員表示學生年級public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){                                   //結構體的構造函數,用參數給成員賦值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}public void ChengeStudentInf(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){                                   //結構體的方法函數,用參數改變成員的值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}}}
    

    運行結果:
    在這里插入圖片描述

    類和結構體的關系

    類和結構體都是創建對象的模板,都可以包含構造函數、常數、字段、方法、屬性、索引器和運算符等成員。二者區別如下:

    1. 結構體是值類型,類是引用類型,在內存中結構體是儲存在堆棧上的值類型,類是儲存在堆上的引用類型。
    2. 結構的構造函數和類的構造函數不同,結構不能包含顯式的無參構造函數,結構成員會自動初始化為他的默認值。結構不能包含以下形式的初始值設定類:base(參數列表)
    3. 對于結構體中的實例字段成員,不能在聲明時初始化。
    4. 聲明了結構體類型后,可以使用new運算符創建構造對象,也可以不使用new關鍵字。如果不使用new,那么在初始化所有字段前,字段將保持未賦值狀態且對象不可用。
    5. 結構體不支持繼承,即一個結構體不能從另一個結構或類繼承,而且不能作為一個類的基類。
    • 博主簡介:
    • 工業自動化上位機軟件工程師、機器視覺算法工程師、運動控制算法工程師。目前從業于智能制造自動化行業。 博主郵箱:2296776525@qq.com
    • 幫忙點個贊吧。哈哈。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254300.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

由.def文件生成lib文件[轉]

最近在學習curl庫時&#xff0c;碰到一個問題&#xff0c;從官網上下載了一個lib版的&#xff0c;卻發現只有.dll&#xff0c;沒有lib文件&#xff0c;感覺很奇怪&#xff0c;google了之后才知道&#xff0c;原來庫作者的用意是讓用戶自己生成lib文件&#xff0c;下載到的lib文…

union 和 union all 有什么不同?

假設我們有一個表 Student&#xff0c; 包括以下字段與數據&#xff1a;drop table student;create table student( idint primary key,name nvarchar2(50) not null,score number not null);insert into student values(1,Aaron,78);insert into student values(2,Bill,76);in…

暴風影音硬件加速播放高清影片

近年來&#xff0c;高清視頻因為畫面清晰、視覺效果好&#xff0c;越來越受到眾多電腦用戶的厚愛。暴風影音3.6版本在高清的支持上&#xff0c;筆者必須得說&#xff0c;是暴風影音在高清方面的一個大跨越&#xff0c;在這個技術上&#xff0c;暴風把KMP等播放器都遠遠的拋在后…

SSL雙向認證的實現

2019獨角獸企業重金招聘Python工程師標準>>> 環境 系統&#xff1a;archlinux/centOS nginx&#xff1a;nginx/1.12.2 瀏覽器&#xff1a;火狐firefox 前提&#xff1a;1.安裝nginx。    2.安裝openssl。 生成證書 新建工作目錄 首先建立一個工作目錄&#x…

partial 分部類-龐大類的瘦身計劃

文章目錄使用情況語法博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 一般來說&#xff0c;一個類、結構或者接口位于一個源文件中&#xff0c;但是某些情況&#xff0c;比如大型項目、特殊部署時&#xff0c;可能需要把一個類、結構或者接口放…

scroll-view——小程序橫向滾動

這是官方給的布局代碼 <view class"section"><view class"section__title">vertical scroll</view><scroll-view scroll-y style"height: 200px;" bindscrolltoupper"upper" bindscrolltolower"lower"…

二期設計

電子鎖管理 設備管理 設備管理 1 信息編輯;回收電子鎖發放 電子鎖初始化&#xff0c;發放 4 記錄車輛在發車時使用的電子鎖電子鎖開鎖聯系人管理 電子鎖開鎖聯系人管理 1 根據訂單路線中的投點&#xff0c;設置每個投遞點的開鎖聯系人&#xff0c;通過短信的方式下發給你開…

音視頻同步系列文章之------時間戳與時間尺度(time scale)

根據一些文章我自己推敲了一下幾個概念如下&#xff1a; 采樣頻率是每秒鐘抽取聲波幅度樣本的次數。8000 幀率是每秒顯示幀數。 20 時間戳單位&#xff1a;時間戳計算的單位不為秒之類的單位&#xff0c;而是由采樣頻率所代替的單位&#xff0c;這…

30秒無需編碼完成一個REST API服務

JSON Server 30秒內無需編碼快速完成一個模擬的REST API服務。 這個服務主要是給那些需要快速的模擬原型后端接口的前端人員使用的 GitHub&#xff1a;github.com/typicode/js… 安裝 $ npm install -g json-server 復制代碼Example 新建一個 db.json 文件 {"posts":…

namespace-C#命名空間

博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 C#程序是利用命名空間組織起來的。命名空間既做程序的內部組織系統&#xff0c;又用做外部組織系統。就像一個國家為了便于管理&#xff0c;分成多個省份一樣。 聲明命名空間 命名空間是.NET …

NKU 專題一 題解

A - Flip Game 總的情況數只有2^16次方種&#xff0c;顯然直接bfs就可以了 1 #include<iostream>2 #include<queue>3 #include<cstring>4 using namespace std;5 int W,B,start;6 bool have[1000000];7 struct plot{8 int n,step;9 }; 10 void input(int…

僵尸進程(轉)

前面的文章中&#xff0c;我們已經了解了父進程和子進 程的概念&#xff0c;并已經掌握了系統調用exit的用法&#xff0c;但可能很少有人意識到&#xff0c;在一個進程調用了exit之后&#xff0c;該進程并非馬上就消失掉&#xff0c;而是留下一個稱為僵尸進 程&#xff08;zomb…

ComblockEngine 引擎實踐

comblockEngine 參考資料 官方網址 學習備注 熟悉內容 1.python 的字符串操作 2.flags 屬性的作用域 flags等 問題每天 1 1.基本數據類型 基本類型 2.數據庫表的操作 操作1 3.屬性的定義在.def中。self.出來之后&#xff0c;在繼承多個類的時候會不會重復。應該是子類的屬性覆蓋…

王陽明詩歌集

此心光明&#xff0c;夫復何求。&#xff08;王陽明死前對弟子的遺言&#xff09; 0. 非常少年、非常父子 山近月遠覺月小&#xff0c;便道此山大于月。若人有眼大如天&#xff0c;當見山高月更闊。—— 《蔽月山房》&#xff0c;作于12歲&#xff1b;1. 中秋 吾心自有光明月&a…

子承父業-C#繼承

文章目錄繼承的定義和使用實例繼承的特性繼承的可傳遞性繼承的單一性繼承中的訪問修飾符base和this關鍵字basethis實例博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 繼承是軟件復用的一種形式。使用繼承可以復用現在類的數據和行為&#xff…

MAVEN創建并打包web項目

maven項目是由一個maven project和多個maven module組成的&#xff0c;以下簡介一下maven webapp的創建和打包&#xff0c;前提是你已經安裝配置好maven了。打開eclipse。依照例如以下操作&#xff1a; 我們首先當然要先創建一個project。如上圖選擇。 如今maven project已經創…

GNU gcc的編譯工具用法(轉)

對大多數不從事Linux平臺C語言開發的人來說&#xff0c;GNU gcc的一套工具和Linux平臺的共享庫的使用還是十分陌生的&#xff0c;其實我也不太熟悉&#xff0c;姑且寫點基礎知識&#xff0c;權當做備忘吧。 一、GNU gcc的編譯工具用法 我們先來寫一個簡單的C程序&#xff1a;…

學界 | CVPR 2018頒布五大獎項,何愷明獲年輕學者獎

年度計算機視覺和模式識別盛會CVPR&#xff08;Conference on Computer Vision and Pattern Recognition&#xff09;在美國鹽湖城開幕啦&#xff01; 據統計&#xff0c;本屆大會有超過3309篇大會論文投稿&#xff0c;接收979篇論文。 面對如此多的論文評審任務&#xff0c;CV…

virtual、override-蝌蚪和青蛙-C#多態

文章目錄多態的概念多態的實現方法重載、重寫、隱藏重載重寫隱藏博主寫作不容易&#xff0c;孩子需要您鼓勵 萬水千山總是情 , 先點個贊行不行 多態的概念 什么是多態&#xff1f; 多態一次最早用于生物學&#xff0c;指同一種族的生物具有不同的特性。比如青蛙小時候是蝌…

jvm--3.內存管理

5.JVM內存管理 JAVA虛擬機在執行java程序的過程中&#xff0c;會把它管理的內存分成若干個不同的數據區域。 ------------------------------------------------------------------------------------— | 運行時數據區 | | ----------- -------- ----------------- | | | 方法…