// Person.cs
using System;
namespace PersonStructCsharp
{
struct Person
{
// instance member field
public string name;
public int age;
// constructor & destructor
public Person(string n, int a) { this.name = n; this.age = a; }
// method
public void SetName(string n) { this.name = n; }
public void SetAge(int a) { this.age = a; }
public void Print() { Console.WriteLine(“Name={0} Age={1}”, this.name, this.age); }
public string GetName() { return this.name; }
public int GetAge() { return this.age; }
}
}
// PersonStructCsharp.cs
using System;
namespace PersonStructCsharp
{
class PersonStructCsharp
{
static void Main(string[] args)
{
Person p1; // 멤버변수가 public일경우 Person p1으로 사용가능하나
p1.name = “고소영”; // 반드시 모든 멤버변수의 값을 초기화해야함
p1.age = 5; // 멤버변수가 모두다 초기화되지 않음 사용불가능
p1.Print(); // 멤버변수가 초기화가 되야 비로소 멤버함수도 사용가능
// 일반적으로 C#에서 struct을 사용하는 형태
// 단 default construct 경우, string은 null로, int는 0으로 초기화를 함
p1 = new Person();
p1.Print();
p1.SetName(“이나영”);
p1.SetAge(10);
p1.Print();
// 더욱 일반적으로 C#에서 struct을 사용하는 형태
Person p2 = new Person(“소간지”, 20);
p2.Print();
}
}
}