数値型の構造型 (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 } } }
出力結果:
コードを編集するときに、コード構造を明確にするために #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の内容です---データ型のStruct型。関連コンテンツの詳細については、PHP Chinese Net (www.php.cn) に注目してください。