C 언어
이 자습서에서는 예제를 통해 C#의 구조체에 대해 알아봅니다.
구조체(구조체)는 데이터를 저장하는 데 사용되는 C#의 클래스와 같습니다. 그러나 클래스와 달리 구조체는 값 유형입니다.
사람의 이름과 나이를 저장하고 싶다고 가정해 봅시다. 두 개의 변수를 만들 수 있습니다. name 및 나이 가치를 저장합니다.
그러나 여러 사람의 동일한 정보를 저장하고 싶다고 가정해 보겠습니다.
이 경우 개인에 대한 변수를 생성하는 것은 지루한 작업일 수 있습니다. 이를 극복하기 위해 name을 저장하는 구조체를 만들 수 있습니다. 및 나이 . 이제 이 구조체는 모든 사람이 사용할 수 있습니다.
<시간>
C#에서는 struct
를 사용합니다. 구조체를 정의하는 키워드. 예를 들어,
struct Employee {
public int id;
}
여기서 id 구조체 내부의 필드입니다. 구조체에는 메서드, 인덱서 등도 포함될 수 있습니다.
<시간>구조체를 사용하기 전에 먼저 구조체 변수를 생성해야 합니다. 구조체 이름을 변수와 함께 사용하여 구조체 변수를 선언합니다. 예를 들어,
struct Employee {
public int id;
}
...
// declare emp of struct Employee
Employee emp;
위의 예에서 Employee라는 구조체를 만들었습니다. . 여기에서 변수 emp를 선언했습니다. Employee 구조체의 .
<시간>
.
와 함께 구조체 변수를 사용합니다. 구조체의 멤버에 액세스하는 연산자입니다. 예를 들어,
struct Employee {
public int id;
}
...
// declare emp of struct Employee
Employee emp;
// access member of struct
emp.id = 1;
여기서는 emp 변수를 사용했습니다. Employee 구조체의 .
포함 Employee 멤버에 액세스하는 연산자 .
emp.id = 1;
이것은 id에 액세스합니다. Employee 구조체의 필드 .
참고 :int
과 같은 기본 데이터 유형 , bool
, float
C#에서 미리 정의된 구조체입니다.
using System;
namespace CsharpStruct {
// defining struct
struct Employee {
public int id;
public void getId(int id) {
Console.WriteLine("Employee Id: " + id);
}
}
class Program {
static void Main(string[] args) {
// declare emp of struct Employee
Employee emp;
// accesses and sets struct field
emp.id = 1;
// accesses struct methods
emp.getId(emp.id);
Console.ReadLine();
}
}
}
출력
Employee Id: 1
위의 프로그램에서 Employee라는 구조체를 만들었습니다. . id 필드가 포함되어 있습니다. 및 메소드 getId() .
프로그램 내부 클래스에서 emp 변수를 선언했습니다. 직원 구조체 . 그런 다음 emp를 사용했습니다. 클래스의 필드와 메소드에 접근하기 위한 변수.
참고 :new
을 사용하여 구조체를 인스턴스화할 수도 있습니다. 예어. 예를 들어,
Employee emp = new Employee();
여기에서 이 줄은 구조체의 매개변수 없는 생성자를 호출하고 모든 멤버를 기본값으로 초기화합니다.
<시간>C#에서 구조체는 생성자를 포함할 수도 있습니다. 예를 들어,
struct Employee {
public int id;
// constructor
public Employee(int employeeId) {
id = employeeId
}
}
여기에서 매개변수화된 생성자 Employee()
를 만들었습니다. 매개변수 employeeId 사용 .
참고 :C# 버전 9.0 이하에서는 매개변수 없는 생성자를 생성할 수 없습니다.
<시간>
using System;
namespace CsharpStruct {
// defining struct
struct Employee {
public int id;
public string name;
// parameterized constructor
public Employee(int employeeId, string employeeName) {
id = employeeId;
name = employeeName;
}
}
class Program {
static void Main(string[] args) {
// calls constructor of struct
Employee emp = new Employee(1, "Brian");
Console.WriteLine("Employee Name: " + emp.name);
Console.WriteLine("Employee Id: " + emp.id);
Console.ReadLine();
}
}
}
출력
Employee Name: Brian Employee Id: 1
위의 예에서는 Employee 내부에 매개변수화된 생성자를 만들었습니다. 구조 생성자 내에서 id 필드 값을 할당했습니다. 및 이름 .
줄을 주목하십시오.
Employee emp = new Employee(1, "Brian");
C# 클래스와 마찬가지로 new
을 사용합니다. 생성자를 호출하는 키워드입니다. 여기 1 및 "브라이언" 매개변수 employeeID에 할당되는 생성자에 전달된 인수입니다. 및 직원 이름 각각."
참고 :매개변수화된 생성자 내부의 모든 구조체 필드에 값을 할당해야 합니다. 예를 들어,
// error code
public Employee(int employeeID, employeeName) {
id = employeeID;
}
여기에서는 name에 대한 값을 할당하지 않았습니다. 필드. 따라서 코드는 오류를 생성합니다.
<시간>C# 구조체 내에서 속성을 사용할 수도 있습니다. 예를 들어,
using System;
namespace CsharpStruct {
// defining struct
struct Employee {
public int id;
// creates property
public int Id {
// returns id field
get {
return id;
}
// sets id field
set {
id = value;
}
}
}
class Program {
static void Main(string[] args) {
// calls the constructor of struct
Employee emp = new Employee();
emp.Id = 1;
Console.WriteLine("Employee Id: " + emp.Id);
Console.ReadLine();
}
}
}
출력
Employee Id: 1
위의 예에서는 Id가 있습니다. Employee 내부의 속성 구조
얻기 메소드는 id를 반환합니다. 필드 및 set 메소드는 id에 값을 할당합니다. 필드.
<시간>C#에서 클래스와 구조체는 비슷하게 보입니다. 그러나 그들 사이에는 몇 가지 차이점이 있습니다.
클래스는 참조 유형이고 구조체는 값 유형입니다. 예를 들어,
using System;
namespace CsharpStruct {
// defining class
class Employee {
public string name;
}
class Program {
static void Main(string[] args) {
Employee emp1 = new Employee();
emp1.name = "John";
// assign emp1 to emp2
Employee emp2 = emp1;
emp2.name = "Ed";
Console.WriteLine("Employee1 name: " + emp1.name);
Console.ReadLine();
}
}
}
출력
Employee1 name: Ed
위의 예에서 emp1 값을 할당했습니다. emp2로 . emp2 개체가 emp1과 동일한 개체를 참조합니다. . 따라서 emp2의 업데이트 emp1의 값을 업데이트합니다. 자동으로.
이것이 클래스가 참조 유형인 이유입니다. .
클래스와 달리 하나의 구조체 변수를 다른 구조체에 할당하면 구조체의 값이 할당된 변수에 복사됩니다. 따라서 하나의 구조체 변수를 업데이트해도 다른 변수에는 영향을 미치지 않습니다. 예를 들어,
using System;
namespace CsharpStruct {
// defining struct
struct Employee {
public string name;
}
class Program {
static void Main(string[] args) {
Employee emp1 = new Employee();
emp1.name = "John";
// assign emp1 to emp2
Employee emp2 = emp1;
emp2.name = "Ed";
Console.WriteLine("Employee1 name: " + emp1.name);
Console.ReadLine();
}
}
}
출력
Employee1 name: John
emp1 값을 할당할 때 emp2로 , 새 값 emp2 생성됩니다. 여기서 emp1의 값은 emp2에 복사됩니다. . 따라서 emp2에서 변경 emp1에 영향을 미치지 않습니다. .
이것이 구조체가 값 유형인 이유입니다. .
또한 구조체에서는 상속이 불가능하지만 C# 클래스의 중요한 기능입니다.
C 언어
직원 생산성은 모든 제조 회사의 성공에 매우 중요합니다. 제조업체는 일반적으로 직원 생산성을 높이기 위해 린 제조 전략을 구현하지만 이것만으로는 충분하지 않습니다. 제조업체가 비즈니스 프로세스를 실행하는 데 도움이 되는 기술이 필요하다는 것은 부인할 수 없습니다. 소프트웨어와 하드웨어의 조합은 직원 생산성을 크게 향상시키는 것으로 입증되었습니다. 예를 들어, 제조 소프트웨어는 제조 회사 활동의 생산 프로세스를 단순화하는 올바른 솔루션입니다. 제조 작업자의 생산성을 높이기 위해 할 수 있는 몇 가지 사항입니다.
성공적인 CNC 기술 상점이 직면하는 문제 중 하나는 성장입니다. 네, 귀하의 비즈니스 성장이 문제인 것이 이상하게 보이지만 그럼에도 불구하고 그렇습니다. 벤처가 성장할 때 기계 공장 소유자의 주요 고려 사항은 직원입니다. CNC 생산량 증가로 추가 인력이 필요할 때보다 원장이 유능한 기계공을 찾는 데 훨씬 더 많은 시간이 걸립니다. CNC 기계 공장의 노동 문제 CNC 가공은 쉬운 일이 아닙니다. 특정 기술을 갖춘 자격을 갖춘 인력이 필요합니다. 시장에는 모든 수요를 처리할 수 있는 유능한 기계공이 많지 않습니다.