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;
}
};
在結構體中也可以定義靜態(tài)成員與類中一樣,使用時必須用類名,或結構名來調用不屬于實例,聲明時直接定義.
程序:
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運算符創(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;
}
}
在使用類對象和函數使用時,使用的是引用傳遞,所以字段改變
在使用結構對象和函數使用時,是用的是值傳遞,所以字段沒有改變
程序:
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#程序設計有所幫助。
相關文章
C#如何讀寫應用程序配置文件App.exe.config,并在界面上顯示
這篇文章主要介紹了C#如何讀寫應用程序配置文件App.exe.config,并在界面上顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
C# 中的動態(tài)創(chuàng)建組件(屬性及事件)的實現思路及方法
這篇文章主要介紹了C# 中的動態(tài)創(chuàng)建組件,有需要的朋友可以參考一下2013-12-12

