집 >백엔드 개발 >C#.Net 튜토리얼 >C# 학습 일기 09---데이터 유형 구조체 유형
수치형의 구조형(struct type):
이전의 단순형을 공부한 후 몇 가지 일반적인 데이터 연산과 워드 프로세싱을 하고 있는데 이 정도면 충분해 보이지만 복잡한 것을 접하게 되면 데이터 유형(예: 각 학생의 이름, 나이, 전화번호, 주소)을 수업 관리 시스템에 입력해야 합니다. 앞서 배운 단순 데이터 유형에 따라 처리하면 학생의 정보가 입력될 때마다 4개의 다른 변수에 저장되므로 작업이 너무 많아지고 직관적이지 않으며 혼동하기 쉽습니다.
C/C++에서 정의된 구조체 구조는 관련 정보 집합을 하나로 묶고 관련 변수를 단일 엔터티로 구성하는 데 사용됩니다. 위의 예를 비유하자면, 학생의 정보를 입력하면 "박스"(구조체)에 이름, 나이, 전화번호, 주소를 입력하고, 그런 다음 상자에 "장산의 상자"와 같은 이름을 지정하세요. 장산의 정보를 보거나 변경하려면 이 상자를 찾아서 안에 있는 멤버를 부르기만 하면 됩니다.
C#은 C/C++의 구조체 유형을 완전히 참조하므로 사용법과 기능이 동일합니다.
C#定义Struct类型格式: 访问修饰符 struct 类型名 { 访问修饰副 成员; }
나중에 액세스 한정자를 자세히 살펴보고 해당 속성에 대해 간략하게 설명하겠습니다. C#에는 공개, 비공개, 보호, 내부 및 보호 내부의 5가지 액세스 한정자가 있습니다. 그 중 public은 아무런 제한이 없고 공유 접근권한을 갖고 있습니다.
구조체 형태의 멤버에 값을 할당하는 방식은 C/C++와 동일합니다. , 구조 변수 이름. 멤버 이름 = 위와 같은 값 Zhang San의 예에서는 다음과 같이 값을 할당할 수 있습니다.
저는 여전히 위의 예를 사용하여 code를 입력하고 학생 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을 추가했습니다.
구조 유형에는 멤버 유형에 대한 제한이 없습니다. 동일하거나 다를 수 있으며 내부 멤버 수에는 제한이 없습니다. 성별 멤버 char 성별을 추가할 수도 있습니다
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结构内的成员 }
마찬가지로 주소 구조의 멤버들에게 값을 할당하고 싶다면 같은 방법을 사용하면 됩니다
Firstperson.Ad.市 = Console.ReadLine(); // Firstperson.Ad.市 = "成都";都是可以的。
위의 구조는 C# 학습일지 09---데이터 유형( Struct) 유형 콘텐츠, 더 많은 관련 콘텐츠를 보려면 PHP 중국어 웹사이트(www.php.cn)를 주목하세요!