반응형

C#

(C#) 클래스 기초 예제: Person

다음 코드는 사람(Person)을 클래스로 표현하는 아주 간단한 C# 코드입니다. Person은 이름(name)과 나이(age) 만 표현하기로 합니다. public class Person { // Class fields (data members) private string name; private int age; } Person은 다음과 같이 인스턴스를 생성합니다. Person person1 = new Person("홍길동", 30); 생성자를 정의합니다. public class Person { ... public Person(string name, int age) { this.name = name; this.age = age; } } Person 정보를 출력하기 위한 메서드를 아래와 같이 정의했습니다...

C# 2023.07.31

(C#) 인터페이스를 이용한 다중 상속 예제: ISwim IFly Animal Bird

C#에서는 기본으로 클래스의 다중 상속은직접 지원되지 않습니다. 그러나 C#은 인터페이스를 사용하여 다중 상속을 달성하는 대체 방법을 제공합니다. 인터페이스를 이용한 다중 상속을 설명하기 위해서 다음과 같은 예제를 살펴보겠습니다. Animal, ISwim 및 IFly의 세 가지 클래스가 있다고 가정합니다. ISwim과 IFly 모두에서 "상속"할 수 있는 Bird 클래스를 만듭니다. 아래 예제에서 Bird 클래스는 Animal 클래스에서 파생되며 ISwim 및 IFly 인터페이스를 모두 구현합니다. Bird 클래스는 여러 클래스에서 직접 상속되지 않지만 인터페이스 구현을 통해 ISwim 및 IFly 모두에서 동작을 얻습니다. 인터페이스는 구현 클래스가 따라야 하는 동작에 대한 계약을 제공한다는 점을 기억..

C# 2023.07.29

(C#) 추상 클래스(abstract class) 예제

C#의 추상 클래스는 자체적으로 인스턴스화할 수 없지만 추상 멤버와 비추상 멤버를 모두 포함할 수 있는 클래스입니다. 추상 멤버는 구현을 제공하지 않고 선언되며 파생 클래스에서 구현되어야 합니다. 다음 코드는 C# 추상 클래스의 예입니다. 이 예제에서는 Shape라는 추상 클래스를 정의합니다. 구현 없이 선언된 하나의 추상 메서드인 'CalculateArea()'가 있습니다. 또한 구현이 포함된 비추상 메서드 Display()가 있습니다. 그런 다음 Shape 추상 클래스에서 상속되는 두 개의 파생 클래스 Circle 및 Rectangle을 만듭니다. 각 파생 클래스는 기본 클래스의 추상 멤버이므로 CalculateArea() 메서드에 대한 구현을 제공해야 합니다. 추상 클래스 Shape의 인스턴스를 직..

C# 2023.07.27

(C#) 인터페이스 예제: IShape

다음 예제는 인터페이스(interface)를 이용한 간단한 C# 코드입니다. 인터페이스를 상속받는 클래스에서는 반드시 인터페이스에서 선언 메서드나 속성을 정의해야 합니다. IShape 인터페이스를 다음과 같이 정의했습니다. public interface IShape { double CalculateArea(); // 넓이 계산 double CalculatePerimeter(); // 둘레 계산 } 인터페이스를 상속받는 Circle과 Rectangle 클래스는 다음과 같이 정의했습니다. public class Circle : IShape { public double Radius { get; set; } public Circle(double radius) { Radius = radius; } public d..

C# 2023.07.25

(C#) GDI+, 이미지 출력하기

C#, 윈폼(winform, Windows Forms)에서 이미지를 출력하는 간단한 예제입니다. // using System; using System.Drawing; using System.Windows.Forms; namespace ImageEx { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { // Bitmap 객체 생성 Bitmap bmp = new Bitmap(@"c:\temp\kakao11.png"); int w = bmp.Width; // 원본 이미지 가로 크기 int h = bmp.Height;..

C# 2023.07.18

(C#) 그래픽: 사각형 패턴 채우기,그림 채우기, 문자열 출력하기

사각형 그리기 채우기 그림으로 채우기 패턴으로 채우기 선 그리기 원 그리기 문자열 출력 C#으로 기본적인 그래픽을 출력하는 코드입니다. 결과 화면 먼저 보여드립니다. (C#) 그래픽: 사각형 패턴 채우기,그림 채우기,문자열 사각형 // 사각형 Graphics g = this.CreateGraphics(); Pen pen1 = new Pen(Color.Red, 2); g.DrawRectangle(pen1, 10, 10, 100, 100); pen1.Dispose(); 채우기 // 사각형, 내부를 파랑(blue)색으로 채웁니다. Graphics g = this.CreateGraphics(); SolidBrush sb = new SolidBrush(Color.Blue); g.FillRectangle(sb, 5..

C# 2023.06.25

(C#) 그래픽: 사각형과 원 그리기

버튼을 클릭하면, 폼에 사각형을 그리는 C#코드입니다. private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); // 지정된 펜츠로 폼에 사각형은 그립니다. Pen pen1 = new Pen(Color.Red, 2); g.DrawRectangle(pen1, 10, 10, 100, 100); // 사각형 채우기 // 단색으로 채웁니다. SolidBrush sb = new SolidBrush(Color.Blue); g.FillRectangle(sb, 120, 10, 100, 100); // 원을 그립니다. // 단색으로 채원진 원을 그립니다. g.DrawEllipse(pen1, 10, 120, 100..

C# 2023.06.25

(C#) 특정 폴더에서 특정 파일 목록 가져오기

특정폴더에서 특정 파일 목록 출력하기 다운로드 폴더에서 특정 파일 목록 출력하기 다음 예제는 다운로드 폴더에서 "$temp*.csv" 파일 목록을 출력하는 예제입니다. 프로그램에서 임시로 생성된 여러 개의 파일을 삭제하기 위해 사용될 수 있습니다. using System; using System.IO; namespace ConsoleApp1 { internal class Program { static void Main(string[] args) { string path = Path.GetDirectoryName(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); path = Path.Combine(path, "Downloads"); strin..

C# 2023.06.25

(C#) Array.Sort 1차원 배열의 정렬, Array.Reverse 역순으로 정렬

Array.Sort() Array 클래스의 Sort() 메서드를 이용하면 1차원 배열을 크기 순으로 정렬할 수 있습니다. Array.Sort(배열명) 예제 static void Print(int[] a) { for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]); Console.WriteLine(); } static void Main(string[] args) { int[] a = { 44, 22, 77, 99, 11 }; Print(a); Array.Sort(a); Print(a); } Array.Reverse() Array 클래스의 Reverse() 메서드는 배열의 요소를 역순으로(반대로, 거꾸로) 정렬합니다. (큰값부터 작은값 순으로 정렬하는..

C# 2023.06.25
반응형