激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - 淺析C#中結構與類的區別

淺析C#中結構與類的區別

2021-12-15 13:29反骨仔(二五仔) C#

本文主要對C#結構與類的區別進行簡要分析,文中舉了實例,便于理解,具有很好的參考價值,需要的朋友一起來看下吧

一、

  •    結構:值類型,存儲在堆棧中,位于計算機的內存邏輯區域中
  •     類   :引用類型,存儲在堆中,位于計算機內存的不同邏輯位置

二、

  •   較小的數據使用結構;
  •   將一個結構值傳遞到方法時,傳遞的是整個數據結構;
  •   傳遞一個類,實際上是將引用傳遞到對象,即只有內存地址;
  •   對結構修改,改變的是結構的副本,這是值類型工作方式的定義:傳遞值的副本;
  •   傳遞一個引用到類本身意味著在類中修改值,實際上改變的是原始對象;

三、代碼例子

1.新建 PointClass.cs

?
1
2
3
4
5
6
7
8
9
10
11
12
13
namespace StructAndClass
{
 internal class PointClass
 {
 public PointClass(int x, int y)
 {
  X = x;
  Y = y;
 }
 public int X { get; set; }
 public int Y { get; set; }
 }
}

2.新建 PointStruct.cs

?
1
2
3
4
5
6
7
8
9
10
11
12
13
namespace StructAndClass
{
 internal struct PointStruct
 {
 public int X { get; set; }
 public int Y { get; set; }
 public PointStruct(int x, int y)
 {
  X = x;
  Y = y;
 }
 }
}

3.Program.cs

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
namespace StructAndClass
{
 internal class Program
 {
 private static void Main(string[] args)
 {
  Console.WriteLine("PointStruct =====");
  var pStruct = new PointStruct(10, 10);
  Console.WriteLine("初始值:x={0},y={1}", pStruct.X, pStruct.Y);
  ModifyPointStruct(pStruct);
  Console.WriteLine("調用 ModifyPointStruct() 后的值:x={0},y={1}", pStruct.X, pStruct.Y);
  Console.WriteLine();
  Console.WriteLine("PointClass =====");
  var pClass = new PointClass(10, 10);
  Console.WriteLine("初始值:x={0},y={1}", pClass.X, pClass.Y);
  ModifyPointClass(pClass);
  Console.WriteLine("調用 ModifyPointClass() 后的值:x={0},y={1}", pClass.X, pClass.Y);
  Console.Read();
 }
 private static void ModifyPointStruct(PointStruct point)
 {
  Console.WriteLine("調用方法:ModifyPointStruct");
  point.X = 20;
  point.Y = 20;
  Console.WriteLine("修改成的值:x={0}, y={1}", point.X, point.Y);
 }
 private static void ModifyPointClass(PointClass point)
 {
  Console.WriteLine("調用方法:ModifyPointClass");
  point.X = 20;
  point.Y = 20;
  Console.WriteLine("修改成的值:x={0}, y={1}", point.X, point.Y);
 }
 }
}

4.結果:

【解析】

ModifyPointStruct(PointStruct point) 調用時修改的只是結構副本,所以原來的結構并沒有發生變化;  

ModifyPointClass(PointClass point) 調用時所修改的對象是原對象,因為參數傳遞過來的是一個引用地址,這地址指向原對象

四、總結

結構是值類型并在堆棧中傳遞,每次使用方法進行修改的都只是結構副本;

至于類,傳遞的是內存地址的引用,修改的就是初始值

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/liqingwen/p/4929057.html

延伸 · 閱讀

精彩推薦
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
主站蜘蛛池模板: 午色影院 | 手机国产乱子伦精品视频 | 亚洲精中文字幕二区三区 | 182tv成人福利视频免费看 | 一级做a爰性色毛片免费 | 一区二区久久 | 99视频网址 | 久久久久久久免费看 | 日本aaaa片毛片免费观蜜桃 | 久久中文免费 | 久久久久久久一区二区三区 | 超碰97在线人人 | 国产精品爱久久久久久久 | 久久人人av | 久久9999久久 | 91精品国产综合久久婷婷香 | 视频一区二区三区在线 | 久久最新网址 | av视在线 | 欧美性生活久久久 | 黄色毛片免费看 | 成人国产精品久久 | 狠狠婷婷综合久久久久久妖精 | 国产亚洲精品久久久久5区 综合激情网 | 午夜生活理论片 | 久久男人天堂 | 中文字幕极速在线观看 | 久久青草影院 | 欧美成年视频 | 国产精品视频在线观看免费 | 国产美女三级做爰 | 亚洲乱码精品久久久久 | 国产69精品久久久久99尤 | 久久久久久久国产a∨ | 久草视频免费 | 91精品久久久久久久久网影视 | 亚洲最新色 | 在线日韩av电影 | 古装三级在线观看 | 日本在线观看高清完整版 | 亚洲成人入口 |