程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#構造體特征實例剖析

C#構造體特征實例剖析

編輯:C#入門知識

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved