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#法式設計有所贊助。