C#構造體特征實例剖析。本站提示廣大學習愛好者:(C#構造體特征實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#構造體特征實例剖析正文
本文實例講述了C#構造體特征。分享給年夜家供年夜家參考。詳細以下:
構造體的界說:
構造體也能夠象類一樣可以零丁界說.
class a{}; struct a{};
構造體也能夠在名字後面參加掌握拜訪符.
public struct student{}; internal struct student{};
假如構造體student沒有publice或許internal的聲明 類program就沒法應用student構造界說 obj對象
假如構造體student的元素沒有public的聲明,對象obj就沒法挪用元素x
由於默許的構造體名和元素名是*******類型
法式:
using System; public struct student { public int x; }; class program { public static void Main() { student obj=new student(); obj.x=100; } };
在構造體中也能夠界說靜態成員與類中一樣,應用時必需用類名,或構造名來挪用不屬於實例,聲明時直接界說.
法式:
using System; public struct student { public static int a = 10; }; class exe { public static void Main() { Console.WriteLine( student.a = 100); } };
或:
using System; class base { public struct student { public static int a = 10; }; } class exe { public static void Main() { Console.WriteLine( base.student.a = 100); } };
在構造體中可以界說結構函數以初始化成員,但弗成以重寫默許無參結構函數和默許無參析構函數
法式:
public struct student { public int x; public int y; public static int z; public student(int a,int b,int c) { x=a; y=b; student.z=c; } };
在構造體中可以界說成員函數。
法式:
public struct student { public void list() { Console.WriteLine("這是結構的函數"); } };
構造體的對象應用new運算符創立(obj)也能夠直接創立單個元素賦值(obj2)這是與類分歧的由於類只能應用new創立對象
法式:
public struct student { public int x; public int y; public static int z; public student(int a,int b,int c) { x=a; y=b; student.z=c; } }; class program { public static void Main() { student obj=new student(100,200,300); student obj2; obj2.x=100; obj2.y=200; student.z=300; } }
在應用類對象和函數應用時,應用的是援用傳遞,所以字段轉變
在應用構造對象和函數應用時,是用的是值傳遞,所以字段沒有轉變
法式:
using System; class class_wsy { public int x; } struct struct_wsy { public int x; } class program { public static void class_t(class_wsy obj) { obj.x = 90; } public static void struct_t(struct_wsy obj) { obj.x = 90; } public static void Main() { class_wsy obj_1 = new class_wsy(); struct_wsy obj_2 = new struct_wsy(); obj_1.x = 100; obj_2.x = 100; class_t(obj_1); struct_t(obj_2); Console.WriteLine("class_wsy obj_1.x={0}",obj_1.x); Console.WriteLine("struct_wsy obj_2.x={0}",obj_2.x); Console.Read(); } }
成果為:
class_wsy obj_1.x=90 struct_wsy obj_2.x=100
願望本文所述對年夜家的C#法式設計有所贊助。