C# 구조체C#.Net의 기본 데이터 타입은 struct로 정의되어 있다.
int, float, double 등의 데이터 타입은 struct로 정의되어 있다.
클래스와 흡사한 구조를 가지고 있으나, 상속은 할 수 없다.
객체 지향 프로그래밍을 위해서 C#에서 클래스를 사용해야 한다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Thredaing.Tasks;
namespace ConsoleApp2
{
class Boninta
{
static void Maine(String[] args)
{
int a=5;
string b=a.ToString();
}
}
}
위와 같이 int형 데이터 구조내에 ToString() 함수가 내장
참고) C#과 C++은 구조체에 함수를 포함할 수 있다. C는 불가능하다.
C++에서의 구조체와 클래스의 차이점
C++에서는 struct는 class와 동작방식이 일치한다.
함수선언 및 정의, 생성자 및 소멸자 선언 및 정의, 상속 구조를 사용할 수 있다.
(C#은 struct 상속 불가능)
다만 C++ struct는 접근 지시자는 항상 public으로 통일되어있지만, class는 멤버별로 각각 다른
접근 지시자를 지정해줄 수 있다.
(구조체는 접근제어 지시자를 선언하지 않으면 public으로 클래스는 private으로 선언된다.
구조체 생성
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Thredaing.Tasks;
namespace ConsoleApp2
{
struct Adder
{
public int x, y;
public Adder(int x, int y)
{
this.x=x;
this.y=y;
}
public string GetResult()
{
return x+" + "+y+" = "+(x+y);
}
}
class Program
{
static void Main(string[] args)
{
Adder adder=new Adder(3, 7);
Console.WriteLine(adder.GetResult());
Console.ReadLine();
}
}
}
C#의 클래스기본적으로 C++의 클래스와 동일하다.
메소드(Method): 특정한 기능을 수행하는 함수를 의미한다. C# 에서는 앞 문자가 대문자로 시작한다.
필드(Field): 클래스의 내부 변수를 의미한다. C++ 과 마찬가지로 접근 제한자를 사용할 수 있다.
일반적으로 내부 변수는 객체 지향 프로그래밍의 원칙에 따라 private을 사용