ホームページ >バックエンド開発 >C#.Net チュートリアル >C#学習日記09---データ型構造体型

C#学習日記09---データ型構造体型

黄舟
黄舟オリジナル
2017-01-20 13:37:011723ブラウズ

数値型の構造型 (struct 型):

前の単純な型を学習した後、いくつかの一般的なデータ操作とワードプロセッサを実行しています。これで十分だと思われますが、いくつかの複雑なデータ型に遭遇した場合、たとえば、それぞれ生徒の名前、年齢、電話番号、住所をクラス管理システムに入力する必要があります。先ほど学習した単純なデータ型に従って処理すると、生徒の情報が入力されるたびに 4 つの異なる変数に保存されることになります。これでは作業が膨大になり、直感的ではなく、混乱しやすくなります。

C/C++ で定義された構造体は、関連する情報のセットをまとめ、関連する変数を 1 つのエンティティに編成するために使用されます。上記の例で、学生の情報を入力する場合、「ボックス」(構造体)に名前、年齢、電話番号、住所を入力します。次に、ボックスに「Zhang San's box」などの名前を付けます。Zhang San の情報を表示または変更したい場合は、このボックスを見つけて中のメンバーを呼び出すだけです。 C# は C/C++ の Struct 型を完全に引用するため、使用方法と機能は同じです。

C#定义Struct类型格式:
    访问修饰符 struct  类型名
         {
                           访问修饰副  成员;
         }

アクセス修飾子については後で詳しく説明し、そのプロパティについて簡単に説明します。C# には、public、private、protected、internal、protected Internal の 5 つのアクセス修飾子があります。このうち public は何の制限もなく共有アクセスとなっています

構造体型のメンバーへの代入や問い合わせ方法はC/C++、構造体の変数名と同じです。 = 値 (上記の Zhang San の例など) 値は次のように割り当てることができます: Zhang San のボックス

私は引き続き上記の例を使用してコードを作成し、2 人の生徒の情報を入力して出力します。 :

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Example  
{   
    class Program  
    {  
       public struct Student  
            {  
             public string name;  
             public uint age;  
             public ulong tel;  
             public string address;  
              
            }  
         
        static void Main(string[] args)  
        {  
            Student Firstperson, Secperson;  //定义两个Student 类型的变量也就是申请2个‘箱子’并取了名字  
            #region        录入第一个学生信息  
  
            Console.WriteLine("\t(第一个学生信息)");  
            Console.WriteLine("输入姓名:");  
            Firstperson.name = Console.ReadLine();  
            Console.WriteLine("输入年龄:");  
            Firstperson.age = uint.Parse(Console.ReadLine()); //强制类型转换  将String 类型转换为uint   
            Console.WriteLine("输入电话号码:");  
            Firstperson.tel = ulong.Parse(Console.ReadLine());  
            Console.WriteLine("请输入地址:");  
            Firstperson.address = Console.ReadLine();  
            #endregion  
 
            #region 录入第二个学生信息  
            Console.WriteLine("\t(第二个学生信息)");  
            Console.WriteLine("输入姓名:");  
            Secperson.name = Console.ReadLine();  
            Console.WriteLine("输入年龄:");  
            Secperson.age = uint.Parse(Console.ReadLine());   
            Console.WriteLine("输入电话号码:");  
            Secperson.tel = ulong.Parse(Console.ReadLine());  //强制类型转换  将String 类型转换为ulong类型   
            Console.WriteLine("请输入地址:");  
            Secperson.address = Console.ReadLine();  
            #endregion  
 
            #region  输出这两个学生的信息  
            Console.WriteLine("1.姓名:{0}\t年龄:{1}\t电话:{2}\t地址:{3}",Firstperson.name,Firstperson.age,Firstperson.tel,Firstperson.address);  
            Console.WriteLine("2.姓名:{0}\t年龄:{1}\t电话:{2}\t地址:{3}", Secperson.name, Secperson.age, Secperson.tel, Secperson.address);  
 
            #endregion  
  
  
        }  
    }  
}

出力結果:

C#学習日記09---データ型構造体型 コードを編集するときに、コード構造を明確にするために #region と #enregion を追加しました。その機能は、記述されたコードを縮小することです。構造体タイプには、そのメンバーのタイプに制限はありません。また、内部のメンバーの数に制限はありません。たとえば、性別メンバーを追加することもできます。構造体型を別の構造体型のメンバーとして使用しても問題ありません。 。上記の学生情報の例を引き続き使用して、メンバーの住所を構造タイプに変更します。住所構造には国籍、都道府県、都市、番地が含まれます。

public struct Student  
           {  
            public string name;  
            public uint age;  
            public ulong tel;  
            public string address;  
            public char sex;  
             
           }

同様に、アドレス構造体のメンバーに値を代入したい場合も同じ方法を使用します

class Program  
   {  
      public struct Student  
           {  
            public string name;  
            public uint age;  
            public ulong tel;  
         public struct address  
            {  
            public string nationality;  
            public string 省份;   // 变量名可以用汉字  
            public string 市;  
            public string street;  
              
             }  
            public char sex;  
  
            public address Ad;  //声明 一个 address类型变量Ad 外部函数通过访问Ad才能访问 address结构内的成员  
             
           }

C#学習日記09---データ型構造体型

以上がC#学習日記09の内容です---データ型のStruct型。関連コンテンツの詳細については、PHP Chinese Net (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。