C#結(jié)構(gòu)體特性實例分析
本文實例講述了C#結(jié)構(gòu)體特性。分享給大家供大家參考。具體如下:
結(jié)構(gòu)體的定義:
結(jié)構(gòu)體也可以象類一樣可以單獨定義.
class a{};
struct a{};
結(jié)構(gòu)體也可以在名字前面加入控制訪問符.
public struct student{};
internal struct student{};
如果結(jié)構(gòu)體student沒有publice或者internal的聲明 類program就無法使用student結(jié)構(gòu)定義 obj對象
如果結(jié)構(gòu)體student的元素沒有public的聲明,對象obj就無法調(diào)用元素x
因為默認的結(jié)構(gòu)體名和元素名是*******類型
程序:
using System;
public struct student
{
public int x;
};
class program
{
public static void Main()
{
student obj=new student();
obj.x=100;
}
};
在結(jié)構(gòu)體中也可以定義靜態(tài)成員與類中一樣,使用時必須用類名,或結(jié)構(gòu)名來調(diào)用不屬于實例,聲明時直接定義.
程序:
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);
}
};
在結(jié)構(gòu)體中可以定義構(gòu)造函數(shù)以初始化成員,但不可以重寫默認無參構(gòu)造函數(shù)和默認無參析構(gòu)函數(shù)
程序:
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;
}
};
在結(jié)構(gòu)體中可以定義成員函數(shù)。
程序:
public struct student
{
public void list()
{
Console.WriteLine("這是構(gòu)造的函數(shù)");
}
};
結(jié)構(gòu)體的對象使用new運算符創(chuàng)建(obj)也可以直接創(chuàng)建單個元素賦值(obj2)這是與類不同的因為類只能使用new創(chuàng)建對象
程序:
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;
}
}
在使用類對象和函數(shù)使用時,使用的是引用傳遞,所以字段改變
在使用結(jié)構(gòu)對象和函數(shù)使用時,是用的是值傳遞,所以字段沒有改變
程序:
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();
}
}
結(jié)果為:
class_wsy obj_1.x=90 struct_wsy obj_2.x=100
希望本文所述對大家的C#程序設(shè)計有所幫助。
相關(guān)文章
C#調(diào)用QQ_Mail發(fā)送郵件實例代碼兩例
這篇文章介紹了C#調(diào)用QQ_Mail發(fā)送郵件的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
C#如何讀寫應(yīng)用程序配置文件App.exe.config,并在界面上顯示
這篇文章主要介紹了C#如何讀寫應(yīng)用程序配置文件App.exe.config,并在界面上顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
C# 中的動態(tài)創(chuàng)建組件(屬性及事件)的實現(xiàn)思路及方法
這篇文章主要介紹了C# 中的動態(tài)創(chuàng)建組件,有需要的朋友可以參考一下2013-12-12
WinForm中comboBox控件數(shù)據(jù)綁定實現(xiàn)方法
這篇文章主要介紹了WinForm中comboBox控件數(shù)據(jù)綁定實現(xiàn)方法,結(jié)合實例形式分析了WinForm實現(xiàn)comboBox控件數(shù)據(jù)綁定的常用方法與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05

