欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中結(jié)構(gòu)(struct)的部分初始化和完全初始化實(shí)例分析

 更新時(shí)間:2014年09月17日 10:46:23   投稿:shichen2014  
這篇文章主要介紹了C#中結(jié)構(gòu)(struct)的部分初始化和完全初始化,通過實(shí)例分析了結(jié)構(gòu)初始化中常見的錯(cuò)誤及技巧,有助于加深對C#結(jié)構(gòu)(struct)的認(rèn)識,需要的朋友可以參考下

本文實(shí)例分析了C#中結(jié)構(gòu)(struct)的部分初始化和完全初始化,分享給大家供大家參考。具體分析如下:

假設(shè)有這樣一個(gè)值類型struct,如下所示:

public struct Size
{
    public int Length;
    public int Width;
    public int Area()
    {
      return Length*Width;
    }
}

一、客戶端,給所有struct字段初始化后調(diào)用方法

class Program
{
    static void Main(string[] args)
    {
      Size size;
      size.Length = 10;
      size.Width = 5;
      Console.WriteLine(size.Area());
      Console.ReadKey();
    }
}

結(jié)果:50

二、客戶端,給部分struct字段初始化

class Program
{
    static void Main(string[] args)
    {
      Size size;
      size.Length = 10;
      Console.WriteLine(size.Area());
      Console.ReadKey();
    }
}

結(jié)果:報(bào)錯(cuò),使用了未賦值的局部變量。 
可見:如果想調(diào)用struct實(shí)例的任何方法,需要給struct的所有字段初始化。

三、客戶端,通過構(gòu)造函數(shù)初始化struct

class Program
{
    static void Main(string[] args)
    {
      Size size = new Size();
      Console.WriteLine(size.Area());
      Console.ReadKey();
    }
}

結(jié)果:0
在這里:通過struct構(gòu)造函數(shù)創(chuàng)建實(shí)例,實(shí)際上是給struct的所有字段賦上了初值0。

總結(jié):

在調(diào)用struct實(shí)例方法之前,必須給struct的所有字段賦上初值,即要求完全初始化,部分初始化是不允許的。要么通過"struct實(shí)例.字段名"給所有字段顯式賦值,要么通過struct構(gòu)造函數(shù),給所有字段賦上默認(rèn)值。

希望本文所述分析對大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。

相關(guān)文章

最新評論