이번에는..구조체를 c#에서도 사용을 하고 있는데요.
굳이 클래스를 사용해도 되지만, 구조체를 사용하는 이유는 뭘까요? 구조상으로는 ... 클래스와 동일하답니다.
그러나 상황에 따라서 클래스의 효율적이지 못한 것을 구조체가 해결해 주거든요. ^^;
프로그램을 하면서 제일 중요한 부분이 공간낭비를 축소하고 작성시 시간적인 낭비를 줄이기 위해서는 클래스를 사용하기 보다는 구조체를 사용하는것이 메모리를 줄이는데 더 효율적입니다.
그럼 구조체와 클래스의 차이점을 알기 위해 아래와 같이 코딩해 보았습니다.
using System;
struct Girl
{
public int age;
public float weight;
public Girl(int a,float w)
{
age = a;
weight = w;
}
}
public class StructDemo
{
public static void Main()
{
Girl shim;
shim.age = 15;
shim.weight = 44f;
Console.WriteLine("shim:{0} and {1}",shim.age,shim.weight);
Girl shimpark = shim;
Console.WriteLine("shimpark:{0} and {1}",shimpark.age,shimpark.weight);
}
}
실행을 하면..
c:\>csc StructDemo.cs
c:\>Struct
shim:15 and 44
shimpark:15 and 44
여기서 보면 구조체 shim 을 park 에 값을 복사하는 것을 볼 수 있답니다. Girl shimpark = shim; <- 이 부분...
출력을 하면 동일한 값이 출력되는 현상을 볼 수 있답니다.
구조체인 value type 의 변수를 선언함과 동시에 메모리 생성이 이루집니다.
간단히 말을 하면 클래스는 참조타입 즉 reference type 이지만, 구조체는 값타입 즉 value type 입니다.
posted by 심재운(shimpark@gmail.com)