반응형
Point 클래스는 2D 공간에서 점을 나타내는 간단한 클래스로, X와 Y 좌표 값을 가지고 있습니다.
이 예제에서 Point 클래스는 X와 Y라는 두 개의 속성으로 정의를 했고, 생성자를 통해 X와 Y 값을 설정할 수 있습니다.
다음은 C#에서 Point 클래스와 해당 클래스의 연산자 오버로딩의 예제입니다.
연산자 오버로딩을 사용하여 Point 객체들 간의 덧셈과 뺄셈 연산을 수행할 수 있도록 구현하였습니다.
+ 연산자 오버로딩은 두 개의 Point 객체를 받아서 각각의 X 좌표와 Y 좌표를 더한 새로운 Point 객체를 반환합니다.
- 연산자 오버로딩은 두 개의 Point 객체를 받아서 각각의 X 좌표와 Y 좌표를 뺀 새로운 Point 객체를 반환합니다.
프로젝트는 "Windows Forms 앱"으로 만들었으며, 폼에 리스트 박스 1개, 버튼 1개를 배치하고 다음 코드를 작성합니다.
using System;
public class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
public static Point operator +(Point p1, Point p2)
{
return new Point(p1.X + p2.X, p1.Y + p2.Y);
}
public static Point operator -(Point p1, Point p2)
{
return new Point(p1.X - p2.X, p1.Y - p2.Y);
}
}
using System;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Point p1 = new Point(2, 3);
Point p2 = new Point(4, 5);
listBox1.Items.Add(String.Format("Point 1: ({0}, {1})",
p1.X, p1.Y));
listBox1.Items.Add(String.Format("Point 2: ({0}, {1})",
p2.X, p2.Y));
Point sum = p1 + p2;
listBox1.Items.Add(String.Format("Sum: ({0}, {1})",
sum.X, sum.Y));
Point difference = p1 - p2;
listBox1.Items.Add(String.Format("Difference: ({0}, {1})",
difference.X, difference.Y));
}
}
}
반응형
'C# > C#_기초강의' 카테고리의 다른 글
(C#) 클래스: Car 자동차, 속성(property) (0) | 2023.05.27 |
---|---|
(C#) 중첩 클래스 nested class (0) | 2023.05.25 |
(C#) dynamic 동적 형식과 object 그리고 var 형식 비교 (0) | 2023.05.05 |
(C#) 선택적 인수 Optional arguments (0) | 2023.05.01 |
(C#) 명명된 인수 named arguments (0) | 2023.05.01 |